У меня есть сборка, которая поддерживает python 2.4, 2.6 и 2.7. Это приводит к установке различных версий пипсов по мере необходимости в их собственных установках python. Я использую tox
для запуска тестов через setup.py
.
Всякий раз, когда я запускаю {python2.7_installation_dir}/bin/python setup.py test
, это приводит к каталогу .tox
. Внутри каталога .tox
я запускаю
py27/bin/pip --version
pip 1.4.1 from {my_package}/.tox/py27/lib/python2.7/site-packages (python 2.7)
[[email protected] .tox]# python2.7
Python 2.7.6 (default, Nov 20 2013, 15:33:09)
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pip
>>> pip.__version__
'1.5.2'
Таким образом, версия pip внутри каталога .tox - это 1.4.1, где в качестве пипа, установленного для интерпретатора python, который я использую для выполнения setup.py test
, является 1.5.2. Это приводит к ошибкам при запуске тестов, поскольку он использует pip для установки каталогов, а некоторые из них поступают из внешних источников, а в 1.5.2 нам нужно явно указать --allow-external --allow-notverified flag для одного из модулей, который не существует в 1.4.1, что приводит к ошибке при каждом вызове тестов через ток.
Существует только одна установка python2.7, и она устанавливается из источника. Но я думаю, что он выполнял команду 1.4.1, но теперь был обновлен, чтобы использовать 1.5.2. Как ток может использовать старую версию? Есть ли какой-либо файл .pth
или что-то, что могло быть оставлено позади, для чего требуется очистка?
Я мог бы сбросить tox
и запустить pytests напрямую, но я бы предпочел запустить их через tox
.
Пожалуйста, дайте мне знать, хотите ли вы видеть журналы, я могу обновить вопрос журналом.