mirror of
https://github.com/python/cpython.git
synced 2025-09-15 13:16:12 +00:00
Don’t try to install something when running from uninstalled source (#12246).
Original patch by Tshepang Lekhonkhobe.
This commit is contained in:
parent
2b612220e4
commit
fa6cfbc4f7
4 changed files with 31 additions and 5 deletions
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue