Re: [Python-de] import Pfad veraendern

Wolfgang Strobl news4@mystrobl.de wrote:
Installiert habe ich es dann mit:
$ python setup.py install --prefix /sw/ubuntu-10.04/mirage-0.9.5.1
Das sieht mir ziemlich verkehrt aus. --prefix dient dazu, den Ort der Python-Installation festzulegen, in deren site-packages das betreffende Modul abgelegt werden soll. Typisch wäre z.B. /usr/bin/python setup.py install --prefix=/usr/local wenn man /usr/local/lib/python2.X statt /usr/lib/python2.X und das dortige site-packages verwenden willl.
Achso, man kann nur einDirectory auswaehlen, in dem Python sowieso nach seinen libs sucht?
Gab es einen Grund, diesen Prefix anzugeben? Ich hätte es erst mal ohne eine Angabe versucht ....
/sw ist unser verteiltes Software-Installationskonzept. Dort landen alle extra installierte Software. /usr/local ist tatsaechlich lokal, wohingegen /sw fuer viele hundert hosts verfuegbar ist (NFS).

On Jun 3, 2012, at 10:02 AM, Ulli Horlacher wrote:
Wolfgang Strobl news4@mystrobl.de wrote:
Installiert habe ich es dann mit:
$ python setup.py install --prefix /sw/ubuntu-10.04/mirage-0.9.5.1
Das sieht mir ziemlich verkehrt aus. --prefix dient dazu, den Ort der Python-Installation festzulegen, in deren site-packages das betreffende Modul abgelegt werden soll. Typisch wäre z.B. /usr/bin/python setup.py install --prefix=/usr/local wenn man /usr/local/lib/python2.X statt /usr/lib/python2.X und das dortige site-packages verwenden willl.
Achso, man kann nur einDirectory auswaehlen, in dem Python sowieso nach seinen libs sucht?
Nein, es gibt die verschiedensten Möglichkeiten, Python nach libs suchen zu lassen, und auch mehr als einen Pfad zu berücksichtigen. Eine Lösung wäre vielleicht, mittels einer virtualenvs in deinem /sw/-verzeichnis die Installation vorzunehmen, und dann mittels der Umgebungsvariable PYTHONPATH dafür zu sorgen, dass die Installation gefunden wird. Mit einem kleinen Wrapper-Skript sollte das problemlos gehen.
Diez

Am 03.06.2012 10:02, schrieb Ulli Horlacher:
Achso, man kann nur einDirectory auswaehlen, in dem Python sowieso nach seinen libs sucht?
Nein, Python sucht in allen Dirs, die in PYTHONPATH angegeben sind.
Ein paar Gedanken-Anstöße: 1) python setup.py install --prefix /sw/ubuntu-10.04/ Dann landen *alle* Module in /sw/ubuntu-10.04/lib/python2.6/site-packages, die Skripte landen in /sw/ubuntu-10.04/bin
2) python setup.py install --prefix /sw/ubuntu-10.04/ --install-scripts /sw/ubuntu-10.04/mirage-0.9.5.1/bin Dann landen *alle* Module in die Skripte landen in /sw/ubuntu-10.04/mirage-0.9.5.1/bin. Aber das Modul mirage landet weiterhin in /sw/ubuntu-10.04/lib/python2.6/site-packages/mirage. Du kannst also nur eine Version installiert haben und damit schient diese Installations-Variante für Deinen Fall unsinnig.
3) Installieren mit easy_install:
easy_install --prefix sw/ubuntu-10.04/ --script-dir /sw/ubuntu-10.04/mirage-0.9.5.1/bin
Damit landet das Modul in /sw/ubuntu-10.04/lib/python2.6/site-packages/mirage-0.9.5.1, Du könntest also mehrere Versionen von Mirage parallel installieren.
Für diese Variante musst Du allerdings dafür sorgen, dass /sw/ubuntu-10.04/lib/python2.6/site-packages in PYTHONPATH enthalten ist. Und natürlich muss dort (oder generisch auf den Zielsystemen) auch setuptools installiert sein.
participants (3)
-
Diez B. Roggisch
-
Hartmut Goebel
-
Ulli Horlacher