Getting setuptools / easy_install, um mit PYTHONPATH gut zu spielen

8

Warum fügen setuptools / easy_install .pth-Dateien nicht gut mit PYTHONPATH zusammen, und wie bekomme ich sie zum Spielen und behalte die Verzeichnisse in meinem PYTHONPATH vor diesen .pt-Shoves im sys.path?

Mein aktuelles Problem ist, dass ich ein Paket für unser Projekt erstellt habe, mit den Anforderungen PyYAML und PyCrypto.

%Vor%

Wie wir entwickelt haben, haben wir PyYaml im Standardverzeichnis (/usr/lib64/python2.6/site-packages) mit pip installiert. Wir haben dort eine ältere Version von PyCrypto installiert und dann festgestellt, dass wir die neuere Version benötigen, die wir unter /opt/devtools/lib64/python2.6/site-packages installiert haben. Wir haben bereits unseren PYTHONPATH so eingestellt, dass er zuerst von / opt vor / usr / lib64 liest. Und das alles hat in der Entwicklung gut funktioniert. Als wir rannten, haben wir PyCrypto 2.3 von / opt und PyYaml von / usr / lib64 / ..

Aber jetzt, wenn ich versuche, in einem virtualenv zu installieren, und wenn ich python setup.py develop ausführe, fügt setuptools / distribute /usr/lib64/python2.6/site-packages zur easy-install.pth hinzu, aber nicht /opt/devtools/lib64/python2.6/site-packages. Es gibt die richtigen Versionen, wie in der Ausgabe zu sehen ist:

%Vor%

Aber nicht / opt / ... zur easy-install.pth hinzufügen. (Nur / usr / lib64 ... und das Verzeichnis, in dem setup.py ausgeführt wurde, wird dem Pfad hinzugefügt.)

Das Endergebnis ist, obwohl ich setuptools denkt, dass es erfolgreich war, wenn ich meinen Code ausführe, entscheidet easy-install.pth, dass er weiß, was ich besser will als ich, fügt sich selbst vor meinem PYTHONPATH ein und ich importiere den falsche Version von PyCrypto.

Zwei Fragen:

  1. Warum sind setuptools inkonsistent in Bezug auf die Verzeichnisse, die der Datei .pth hinzugefügt werden? Ich würde erwarten, dass entweder beide Verzeichnisse oder keines der Verzeichnisse installiert wird.

  2. Gibt es eine Möglichkeit, setuptools nicht zu versuchen, meinen PYTHONPATH zu überschreiben? Warum wurde das überhaupt als eine gute Idee betrachtet?

AFoglia 28.09.2011, 22:23
quelle

1 Antwort

0

Nach dem, was ich von Ihrer Frage verstehe, können Sie hier Ihre Bedenken äußern: Ссылка

Klingt, als hätten andere ein ähnliches Problem gehabt. Ich könnte mich irren, ich benutze nur Pip. Ich benutze nie easy_install, wenn ich helfen kann.

    
jimh 13.03.2017 19:15
quelle

Tags und Links