Проект Python не собирает зависимости в соответствии с порядком sys.path - PullRequest
0 голосов
/ 27 ноября 2018

Я использую pip и python 2.7 для обновления зависимости в моем проекте.Глобальный питон имеет более низкую версию зависимости, и я запускаю pip install с опцией --user, чтобы не связываться с глобальными sdks.

Я запускаю команду pip install --user -r requirements.txt в каталоге workspace/myproject.Этот каталог также мой PYTHONUSERBASE Проект не может использовать обновленную версию и завершает работу.Вот результат команды python -m site команда

sys.path = [
'workspace/myproject',
'/usr/local/lib/python2.7/site-packages/pip-9.0.1- 
py2.7.egg',
'/usr/local/lib/python27.zip',
'/usr/local/lib/python2.7',
'/usr/local/lib/python2.7/plat-linux2',
'/usr/local/lib/python2.7/lib-tk',
'/usr/local/lib/python2.7/lib-old',
'/usr/local/lib/python2.7/lib-dynload',
'workspace/myproject/_pip/lib/python2.7/site- 
 packages',
'/usr/local/lib/python2.7/site-packages',
]
USER_BASE: 'workspace/myproject/_pip' (exists)
USER_SITE: 'workspace/myproject/_pip/lib/python2.7/site-packages' 
(exists)
ENABLE_USER_SITE: True

pip -V: pip 9.0.1 from /usr/local/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg (python 2.7)

Как видите, мой пользовательский сайт находится выше глобального расположения пакета сайта.Когда я перехожу в каталог user-site, я вижу все классы и модули последней версии.Список пунктов команды --user также показывает версию, которую я хочу.Тем не менее, когда я запускаю проект, более старая зависимость выбирается из местоположения пакетов глобального сайта.Я использовал переменную __file__, чтобы быть уверенным в полном пути импортируемого модуля, и он показал

'/usr/local/lib/python2.7/site-packages' 

Однако, когда я запускаю pip install с опцией --ignore-installer, все работает какожидается.Файл sys.path имеет тот же вывод, но переменная __file__ теперь отображает путь к каталогу user_site.Я признаю, что я новичок в python и pip, но согласно моему пониманию документации по sys.path, импорту python и user_site, это не ожидаемое поведение.Кто-нибудь сталкивался с чем-нибудь подобным?Правильно ли я понимаю, как pip работает с параметром --user?Любые входы по этому помогут.

Спасибо!

...