Quand je le lance
import sys
print sys.path
sur mon Mac (Mac OS X 10.6.5, Python 2.6.1), j'obtiens les résultats suivants.
/Library/Python/2.6/site-packages/ply-3.3-py2.6.oeuf ... /Library/Python/2.6/site-packages/ipython-0.10.1 l'a-py2.6.oeuf /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/plate-darwin /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plate-mac /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plate-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-vieux /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
Elles sont regroupées en 5 catégories.
- /Library/Python/2.6/site-packages/*.oeuf
- /Library/Python/2.6/site-packages
- Cadres/Python.framework/Versions/2.6/lib/python2.6
- Cadres/Python.framework/Versions/2.6/Extras/lib/python
- CHEMIN de la variable d'environnement PYTHONPATH.
Et je peux ajouter plus de chemins à l'aide du code
sys.path.insert(0, MORE_PATH)
- Ce que les routines met en place ces chemins, et quand?
- Sont quelques-uns des chemins d'accès sont intégrées dans le code source python?
- Est-il possible que les chemins d'accès inséré avec " sys.chemin d'accès.insérer " sont ignorés? Je suis curieux de savoir à ce sujet, comme avec mod_wsgi, j'ai trouvé les chemins ne sont pas trouvés avec " sys.chemin d'accès.insérer". J'ai demandé à un autre post pour cette question.
AJOUTÉ
Basé sur Michael réponse, j'ai regardé dans site.py et j'ai eu le code suivant.
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"))
Je pense aussi que le nom du répertoire qui a site.py (/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6 pour mon Mac) devraient être intégrées dans le code source Python.