2010-12-09 6 views
7

Je suis un débutant python et je suis dans mes premiers jours à jouer avec mes propres scripts python et des projets tels que django.Comment python charge-t-il toutes les valeurs dans sys.path?

J'utilise Ubuntu et je mets mon PYTHONPATH comme

export PYTHONPATH=/usr/lib/python2.6:~/Projects/mypython 

Quand je lance dans un interpréteur python

import sys 
print sys.path 

Je peux voir

[ '', «/usr/bin ',' /usr/local/lib/python2.6/dist-packages/ropemode-0.1_rc2-py2.6.egg ',' /usr/local/lib/python2.6/dist-packages/rope- 0.9.3-py2.6.egg ',' /usr/local/lib/python2.6/dist -packages/ropevim-0.3_rc-py2.6.egg ',' /usr/lib/python2.6 ','/home/jaume/Projets/mypython ',' /usr/lib/python2.6/plat-linux2 ',' /usr/lib/python2.6/lib-tk ',' /usr/lib/python2.6/lib-old ',' /usr/lib/python2.6/lib-dynload ','/usr /local/lib/python2.6/dist-packages ',' /usr/lib/python2.6/dist-packages ',' /usr/lib/python2.6/dist-packages/PIL ','/usr/lib/python2.6/dist-packages/gst-0.10 ',' /usr/lib/pymodules/python2.6 ',' /usr/lib/python2.6/dist-packages/gtk-2.0 ','/usr /lib/pymodules/python2.6/gtk-2.0 ',' /usr/lib/python2.6/dist-packages/wx-2.8-gtk2-unicode ',' /usr/lib/pymodules/python2.6/IPython/Extensions ', u'/home/jaume/.ipython ']

Comment python charge-t-il tous les chemins non-PYTHONPATH? Y a-t-il un index? De plus, mon django est installé dans/usr/lib/pymodules et, même s'il ne figure pas dans la liste sys.path, il s'exécute.

Merci beaucoup.

+0

Pour savoir comment django chargement, vérifiez le chemin: '>>> import django django >>> .__ path__ [ '/usr/local/lib/python2.6/ dist-packages/django '] ' – hughdbrown

+0

Je ne peux voir que le [' django ']. Peut-être que c'est parce qu'il est installé à partir de 'apt-get' – jaume

Répondre

3

Ceci est une liste de tous les fichiers l'interpréteur Python sur mon ordinateur (ce qui, est semblable, mais pas la même que, le vôtre) ouvre avant le début de l'exécution de code fourni par moi:

$ strace -eopen python -c 1 2>&1 | grep -ve '-1 E' 
open("/etc/ld.so.cache", O_RDONLY)  = 3 
open("/lib/libpthread.so.0", O_RDONLY) = 3 
open("/lib/libdl.so.2", O_RDONLY)  = 3 
open("/lib/libutil.so.1", O_RDONLY)  = 3 
open("/usr/lib/libssl.so.0.9.8", O_RDONLY) = 3 
open("/usr/lib/libcrypto.so.0.9.8", O_RDONLY) = 3 
open("/usr/lib/libz.so.1", O_RDONLY) = 3 
open("/lib/libm.so.6", O_RDONLY)  = 3 
open("/lib/libc.so.6", O_RDONLY)  = 3 
open("/proc/meminfo", O_RDONLY)   = 3 
open("/usr/lib/python2.6/site.py", O_RDONLY) = 3 
open("/usr/lib/python2.6/site.pyc", O_RDONLY) = 4 
open("/usr/lib/python2.6/os.py", O_RDONLY) = 4 
open("/usr/lib/python2.6/os.pyc", O_RDONLY) = 5 
open("/usr/lib/python2.6/posixpath.py", O_RDONLY) = 5 
open("/usr/lib/python2.6/posixpath.pyc", O_RDONLY) = 6 
open("/usr/lib/python2.6/stat.py", O_RDONLY) = 6 
open("/usr/lib/python2.6/stat.pyc", O_RDONLY) = 7 
open("/usr/lib/python2.6/genericpath.py", O_RDONLY) = 6 
open("/usr/lib/python2.6/genericpath.pyc", O_RDONLY) = 7 
open("/usr/lib/python2.6/warnings.py", O_RDONLY) = 6 
open("/usr/lib/python2.6/warnings.pyc", O_RDONLY) = 7 
open("/usr/lib/python2.6/linecache.py", O_RDONLY) = 7 
open("/usr/lib/python2.6/linecache.pyc", O_RDONLY) = 8 
open("/usr/lib/python2.6/types.py", O_RDONLY) = 7 
open("/usr/lib/python2.6/types.pyc", O_RDONLY) = 8 
open("/usr/lib/python2.6/UserDict.py", O_RDONLY) = 5 
open("/usr/lib/python2.6/UserDict.pyc", O_RDONLY) = 6 
open("/usr/lib/python2.6/_abcoll.py", O_RDONLY) = 6 
open("/usr/lib/python2.6/_abcoll.pyc", O_RDONLY) = 7 
open("/usr/lib/python2.6/abc.py", O_RDONLY) = 7 
open("/usr/lib/python2.6/abc.pyc", O_RDONLY) = 8 
open("/usr/lib/python2.6/copy_reg.py", O_RDONLY) = 5 
open("/usr/lib/python2.6/copy_reg.pyc", O_RDONLY) = 6 
open("/usr/local/lib/python2.6/dist-packages", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 
open("/usr/lib/python2.6/dist-packages", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 4 
open("/usr/lib/python2.6/dist-packages/PIL.pth", O_RDONLY) = 4 
open("/usr/lib/python2.6/dist-packages/pygst.pth", O_RDONLY) = 4 
open("/usr/lib/python2.6/dist-packages/python-support.pth", O_RDONLY) = 4 
open("/usr/lib/python2.6/dist-packages/wx.pth", O_RDONLY) = 4 
open("/usr/lib/python2.6/dist-packages/zope.interface-3.5.3-nspkg.pth", O_RDONLY) = 4 
open("/usr/lib/python2.6/sitecustomize.py", O_RDONLY) = 4 
open("/usr/lib/python2.6/sitecustomize.pyc", O_RDONLY) = 5 
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3 
open("/usr/lib/python2.6/encodings/__init__.py", O_RDONLY) = 3 
open("/usr/lib/python2.6/encodings/__init__.pyc", O_RDONLY) = 4 
open("/usr/lib/python2.6/codecs.py", O_RDONLY) = 4 
open("/usr/lib/python2.6/codecs.pyc", O_RDONLY) = 5 
open("/usr/lib/python2.6/encodings/aliases.py", O_RDONLY) = 4 
open("/usr/lib/python2.6/encodings/aliases.pyc", O_RDONLY) = 5 
open("/usr/lib/python2.6/encodings/utf_8.py", O_RDONLY) = 3 
open("/usr/lib/python2.6/encodings/utf_8.pyc", O_RDONLY) = 4 

Tout cela pourrait, au moins potentiellement, avoir un effet sur sys.path. Il est extrêmement improbable que les choses qui viennent avant site.py seraient, cependant (ce sont toutes les bibliothèques OS et les interfaces non spécifiques à Python). Je vous suggère de jeter un oeil à site.py, sitecustomize.py, et les différents fichiers .pth (votre liste de fichiers .pth sera différente de la mienne, c'est normal).

Questions connexes