Don’t try to install something when running from uninstalled source (#12246).

Original patch by Tshepang Lekhonkhobe.
This commit is contained in:
Éric Araujo 2011-06-10 18:31:40 +02:00
parent 2b612220e4
commit fa6cfbc4f7
4 changed files with 31 additions and 5 deletions

View file

@ -13,7 +13,7 @@ import errno
import shutil
import logging
import tempfile
from sysconfig import get_config_var, get_path
from sysconfig import get_config_var, get_path, is_python_build
from packaging import logger
from packaging.dist import Distribution
@ -488,20 +488,31 @@ def install(project):
Returns True on success, False on failure
"""
if is_python_build():
# Python would try to install into the site-packages directory under
# $PREFIX, but when running from an uninstalled code checkout we don't
# want to create directories under the installation root
message = ('installing third-party projects from an uninstalled '
'Python is not supported')
logger.error(message)
return False
logger.info('Checking the installation location...')
purelib_path = get_path('purelib')
# trying to write a file there
try:
with tempfile.NamedTemporaryFile(suffix=project,
dir=purelib_path) as testfile:
testfile.write(b'test')
except OSError:
# was unable to write a file
# FIXME this should check the errno, or be removed altogether (race
# condition: the directory permissions could be changed between here
# and the actual install)
logger.info('Unable to write in "%s". Do you have the permissions ?'
% purelib_path)
return False
logger.info('Getting information about %r...', project)
try:
info = get_infos(project)