Ich habe eine Build-Box, die Python 2.4, 2.6 und 2.7 unterstützt. Dies führt zur Installation verschiedener Versionen von Pips, wie sie in ihren eigenen Python-Installationen benötigt werden. Ich verwende tox
, um Tests über setup.py
auszuführen.tox verwendet falsche Version von Pip, wenn mehrere Versionen von Python installiert sind
Immer, wenn ich eine {python2.7_installation_dir}/bin/python setup.py test
ausführen, führt dies zu einem .tox
Verzeichnis. Innerhalb .tox
Verzeichnis betreibe ich
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'
So die Version von Pip innerhalb .tox Verzeichnis ist 1.4.1, wo als Pip für Python-Interpreter installiert, die ich 1.5.2 die setup.py test
ist auszuführen bin mit. Dies führt zu Fehlern bei der Ausführung von Tests, da pip verwendet wird, um die Verzeichnisse zu installieren, und einige von ihnen stammen aus externen Quellen. In 1.5.2 müssen wir explizit --allow-external --allow-unified Flag für eines der Module setzen, die existiert in 1.4.1 nicht, was jedes Mal zu einem Fehler führt, wenn ich Tests durch tox aufrufe.
Es gibt nur eine Python2.7-Installation, die von der Quelle installiert wird. Aber ich denke, es lief pip 1.4.1, aber jetzt wurde aktualisiert, um 1.5.2 zu verwenden. Wie kann tox die alte Version verwenden? Gibt es eine Datei .pth
oder etwas, das zurückgelassen werden könnte, das aufgeräumt werden muss?
Ich könnte tox
fallen lassen und Pyetests direkt ausführen, aber ich würde es vorziehen, sie über tox
laufen zu lassen.
Bitte lassen Sie mich wissen, wenn Sie die Protokolle sehen möchten, kann ich die Frage mit dem Protokoll aktualisieren.
Haben Sie eine Lösung gefunden? Ich habe das gleiche Problem. – Vetalll
Nein, ich habe wegen des Mangels an Zeit, mich damit zu befassen, feige gegangen! – opensourcegeek