Путь к модулю порядка в virtualenv
Я заметил странное явление, связанное с путями dist-packages. Порядок моих путей в моей общесистемной установке Python 3 (просто работает python3
а затем печать sys.path
) как следует:
/usr/local/lib/python3.4/dist-packages
/usr/lib/python3/dist-packages
т.е. путь в local
является предпочтительным. Тем не менее, создание виртуальной среды и запуск python3
после активации среда дает:
/usr/lib/python3/dist-packages
/usr/local/lib/python3.4/dist-packages
Порядок явно обратный. Тем не менее, pip все равно сначала ищет локальный, что приводит к другой версии библиотеки, видимой по зависимостям pip, и другой, используемой при импорте.
Может кто-нибудь объяснить несоответствие?
РЕДАКТИРОВАТЬ:
Когда virtualenv активирован, используется пипс, установленный в virtualenv:
pip 9.0.1 from ~/.virtualenv/python3/lib/python3.4/site-packages (python 3.4)
и все же, несмотря на путь, указывающий сначала на dist-utils в /usr/lib
, он разрешает зависимости с тем, что в /usr/local/lib
:
pip3 install --upgrade setuptools
Requirement already up-to-date: setuptools in ./.virtualenv/python3/lib/python3.4/site-packages
Requirement already up-to-date: appdirs>=1.4.0 in ./.virtualenv/python3/lib/python3.4/site-packages (from setuptools)
Requirement already up-to-date: packaging>=16.8 in /usr/local/lib/python3.4/dist-packages (from setuptools)
Requirement already up-to-date: six>=1.6.0 in ./.virtualenv/python3/lib/python3.4/site-packages (from setuptools)
Requirement already up-to-date: pyparsing in /usr/local/lib/python3.4/dist-packages (from packaging>=16.8->setuptools)