Wenn ich renne
import sys
print sys.path
Auf meinem Mac (Mac OS X 10.6.5, Python 2.6.1) erhalte ich die folgenden Ergebnisse.
/Library/Python/2.6/site-packages/ply-3.3-py2.6.egg ... /Library/Python/2.6/site-packages/ipython-0.10.1-py2.6.egg /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6 /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload /Library/Python/2.6/site-packages /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode
Sie sind in 5 Kategorien eingeteilt.
- /Library/Python/2.6/site-packages/*.egg
- /Library/Python/2.6/site-packages
- Frameworks / Python.framework / Versions / 2.6 / lib / python2.6
- Frameworks / Python.framework / Versions / 2.6 / Extras / lib / python
- PATH von der Umgebungsvariablen PYTHONPATH.
Und ich kann mit dem Code weitere Pfade hinzufügen
sys.path.insert(0, MORE_PATH)
- Welche Routinen richten diese Pfade ein und wann?
- Sind einige der Pfade im Python-Quellcode erstellt?
- Ist es möglich, dass die mit 'sys.path.insert' eingefügten Pfade ignoriert werden? Ich bin neugierig, da ich bei mod_wsgi festgestellt habe, dass die Pfade bei 'sys.path.insert' nicht gefunden werden. Ich habe einen anderen Beitrag für diese Frage gestellt.
HINZUGEFÜGT
Basierend auf Michaels Antwort habe ich in site.py nachgesehen und den folgenden Code erhalten.
def addsitepackages(known_paths):
"""Add site-packages (and possibly site-python) to sys.path"""
sitedirs = []
seen = []
for prefix in PREFIXES:
if not prefix or prefix in seen:
continue
seen.append(prefix)
if sys.platform in ('os2emx', 'riscos'):
sitedirs.append(os.path.join(prefix, "Lib", "site-packages"))
elif sys.platform == 'darwin' and prefix == sys.prefix:
sitedirs.append(os.path.join("/Library/Python", sys.version[:3], "site-packages"))
Ich denke auch, dass der Verzeichnisname mit site.py (/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6 für meinen Mac) in Python-Quellcode integriert sein sollte.