Wie richte ich ein lokales python-Bibliothek Verzeichnis / PYTHONPATH?
In den Prozess der versucht zu schreiben, ein Python-Skript, dass verwendet PIL heute entdeckte ich, dass ich offenbar nicht habe es auf meinem lokalen Rechner (OS X 10.5.8, default Python 2.5 installieren).
Also ich ausführen:
easy_install --prefix=/usr/local/python/ pil
und es beschwert sich ein wenig über /usr/local/python/lib/python2.5/site-packages noch nicht vorhandene, ich Schaffe es, und versuchen Sie es erneut, und dieses:
TEST FEHLGESCHLAGEN IST:
/usr/local/python//lib/python2.5/site-packages
NICHT unterstützt .pth-Dateien-Fehler: bad
installieren Sie directory oder PYTHONPATHDie Sie versuchen zu installieren
Paket in ein Verzeichnis, das nicht auf
PYTHONPATH und die Python nicht
Lesen ".pth" - Dateien aus. Die
installation von Ihnen angegebenen Verzeichnis
(über --install-dir, -- - Präfix oder die
distutils default-Einstellung) war:/usr/local/python//lib/python2.5/site-packages
und Ihre PYTHONPATH Umgebung
variable aktuell enthält:''
OK, fair genug-ich hatte nichts unternommen, um den Pfad festzulegen. Also habe ich noch eine schnelle Linie zu ~/.bash_profile:
PYTHONPATH="$PYTHONPATH:/usr/local/python/lib/python2.5"
sowie source
es, und versuchen Sie es erneut.
Gleiche Fehlermeldung.
Dies ist kindof neugierig, da PYTHONPATH ist klar und deutlich; ich kann echo $PYTHONPATH
und zurück :/usr/local/python/lib/python2.5
. Ich beschloss zu prüfen, was der include-Pfad sah aus wie von innen:
import sys
print "\n".join(sys.path)
welche ergibt:
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python25.zip
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/lib-dynload
/Library/Python/2.5/site-packages
/System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/PyObjC
aus, die /usr/local/python/yadda/yadda
ist insbesondere fehlt.
Nicht sicher, was ich machen soll hier. Wie bekomme ich python zu erkennen, diese Lage als include-Pfad?
UPDATE
Als Sven Marnach vorgeschlagen, ich vernachlässigte den export PYTHONPATH. Ich habe korrigiert, dass problem und jetzt finden Sie es zeigen, wenn ich drucken Sie sys.path
innerhalb von Python. Allerdings hab ich noch die TEST FAILED
Fehlermeldung, die ich oben erwähnt, nur mit meinem neuen PYTHONPATH-Umgebungsvariable.
So, ich habe versucht, es zu ändern aus /usr/local/python/lib/python2.5
zu /usr/local/python/lib/python2.5/site-packages
, exportieren und mit den easy_install
Befehl erneut aus. Dies führt zu einem ganz neuen Ergebnis, auf den ersten sah wie Erfolg (aber nicht):
Creating /usr/local/python/lib/python2.5/site-packages/site.py
Searching for pil
Reading http://pypi.python.org/simple/pil/
Reading http://www.pythonware.com/products/pil
Reading http://effbot.org/zone/pil-changes-115.htm
Reading http://effbot.org/downloads/#Imaging
Best match: PIL 1.1.7
Downloading http://effbot.org/media/downloads/PIL-1.1.7.tar.gz
Processing PIL-1.1.7.tar.gz
Running PIL-1.1.7/setup.py -q bdist_egg --dist-dir /var/folders/XW/XWpClVq7EpSB37BV3zTo+++++TI/-Tmp-/easy_install-krj9oR/PIL-1.1.7/egg-dist-tmp--Pyauy
--- using frameworks at /System/Library/Frameworks
[snipped: compiler warnings]
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform darwin 2.5.1 (r251:54863, Sep 1 2010, 22:03:14)
[GCC 4.0.1 (Apple Inc. build 5465)]
--------------------------------------------------------------------
--- TKINTER support available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
To check the build, run the selftest.py script.
zip_safe flag not set; analyzing archive contents...
Image: module references __file__
No eggs found in /var/folders/XW/XWpClVq7EpSB37BV3zTo+++++TI/-Tmp-/easy_install-krj9oR/PIL-1.1.7/egg-dist-tmp--Pyauy (setup script problem?)
Wieder, das sieht gut aus, aber wenn ich gehen, um mein Skript auszuführen:
Traceback (most recent call last):
Datei "checkerboard.py", line 1, inimport Image, ImageDraw ImportError: No module named Image
Wenn ich überprüfen, was nun unter /usr/local/python/
mit find .
ich bekommen:
./lib ./lib/python2.5
./lib/python2.5/site-packages
./lib/python2.5/site-packages/site.py
./lib/python2.5/site-packages/Website.pyc
So... nichts-Modul-auf der Suche (ich gehe davon site.py und die Website.pyc sind Metadaten oder Helfer-Skripte). Woher die Installation?
I Hinweis:
Um den build zu überprüfen, führen Sie den
selftest.py-Skript.
Aber nicht wirklich wissen, was das ist.
Und ich bemerkte auch, die "Keine Eier gefunden" - Meldung. Entweder sind diese Hinweise?
PYTHONPATH
? Nur die Einstellung, es als shell-variable nicht helfen. Versuchen export PYTHONPATH="$PYTHONPATH:/usr/local/python/lib/python2.5"
und verwenden env
zu überprüfen, es ist wirklich exportiert, um die Umwelt.Huh. OK, ich brauche definitiv Anregungen für eine gute Grundierung auf Verständnis shell/environment-Variablen und Befehle wie
env
und export
und source
besser. Ich würde gerne mal Anregungen. Dies ist nur ein Teil des Problems, aber... nun habe ich folgte Sven der Vorschläge der Pfad scheint sich immer erkannt sys.path
, aber ich bin noch immer die "test fehlgeschlagen" - Nachricht von leicht installieren. Ich werde aktualisieren, meine Frage, um diese zu reflektieren.
InformationsquelleAutor Weston C | 2010-12-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie mit den von Apple mitgelieferten Python 2.5, OS X; es ist ein framework bauen, und verwendet standardmäßig
/Library/Python/2.5/site-packages
als Speicherort für installierte Pakete, die nicht/usr/local
. Normalerweise sollten Sie nicht brauchen, um anzugeben--prefix
mit OS-X-framework zu bauen. Hüten Sie sich auch davor, dass diesetuptools
(easy_install
) geliefert von Apple mit OS X 10.5 ist auch eher alt, da ist die version von Python selbst.Sagte, die Installation
PIL
vollständig und korrekt auf OS X vor allem OS X 10.5 ist nicht besonders einfach. Suchen in den Archiven oder an anderer Stelle für Tipps und/oder Binär-Pakete. Vor allem, wenn Sie planen, verwenden Sie andere Module wie MySQL oder Django, meine Empfehlung ist, alles zu installieren (Python und PIL) - mit einem Paket-manager wie MacPorts.InformationsquelleAutor Ned Deily
Warum geben Sie
--prefix
in Ihremeasy_install
Aufruf? Haben Sie versuchen, nur:Wenn Sie nur versuchen zu installieren, PIL, um den Standard-Speicherort, würde ich denken
easy_install
arbeiten konnte aus die richtige Pfad. (Klar,/usr/local/python
ist es nicht...)BEARBEITEN: Jemand unten-wurde diese Antwort, vielleicht, weil es war zu knapp
. Das ist es, was ich für den Versuch zu post eine Antwort von meinem Handy, denke ich. Aber das wesentliche ist vollkommen gültig, IMHO: wenn Sie
--prefix
zum angeben einer benutzerdefinierten Speicherort installieren miteasy_install
, Sie sind Art von 'etwas falsch'. Es könnte sein möglich um diese Arbeit zu machen, aber dieeasy_install
Dokumentation hat einen Abschnitt über benutzerdefinierte installation-Standorte, dass nicht einmal erwähne dies als eine Möglichkeit, außer einem kleinen zwicken, um die virtuelle python option. Ich würde vorschlagen, nach dem OS X Anleitung wenn Sie installieren möchten, um einen benutzerdefinierten Speicherort auf einem Mac--prefix
einfach nicht scheinen, wie Sie das richtige Werkzeug für den job.je nach Ihren Bedürfnissen können Sie besser gedient mit virtualenv zu halten 'Ihre' Python-Module, die getrennt von der system-Module installiert. Die überwiegende Mehrheit von Paketen zu installieren, nur gut, wenn Sie tun
python setup.py install
in einem virtualenv. Für diese Pakete (wie PyQt), die nicht spielen schön mit virtualenvs, können Sie fast immer arbeiten, um dieses mit einem hack wie beschrieben in diese Antwort.InformationsquelleAutor evadeflow