[cli] fixes --install which did not work with --editable packages, aka things added to sys.path by some *.pth file in a very not explicit way.

This commit is contained in:
Romain Dorgueil
2017-05-28 23:03:22 +02:00
parent ac800d2e14
commit 5b7e3c8324

View File

@ -1,3 +1,4 @@
import importlib
import os
import runpy
@ -44,7 +45,13 @@ def execute(filename, module, install=False, quiet=False, verbose=False):
if os.path.isdir(filename):
if install:
requirements = os.path.join(filename, 'requirements.txt')
pip.main(['install', '-qr', requirements])
pip.main(['install', '-r', requirements])
# Some shenanigans to be sure everything is importable after this, especially .egg-link files which
# are referenced in *.pth files and apparently loaded by site.py at some magic bootstrap moment of the
# python interpreter.
pip.utils.pkg_resources = importlib.reload(pip.utils.pkg_resources)
import site
importlib.reload(site)
filename = os.path.join(filename, DEFAULT_GRAPH_FILENAME)
elif install:
raise RuntimeError('Cannot --install on a file (only available for dirs containing requirements.txt).')