[python-nl] howto PYTHONPATH

Ronald Oussoren ronaldoussoren at mac.com
Fri May 30 08:16:34 CEST 2014


On 27 May 2014, at 09:57, Floris van Manen <vm at klankschap.nl> wrote:

> Kan iemand mij de werking van PYTHONPATH uitleggen?
> En dan niet zozeer waarvoor het is maa wel hoe of dat de inhoud van die omgevingsvariabele wordt samengesteld.
> Los van het feit dat je er zelf iets in kunt zetten, blijkt dat onderweg naar het opstarten van python er ook een en ander wordt toegevoegd. Hoe kun je inzicht krijgen wie er wat op welk moment toevoegt?  Wie bepaald de volgorde?
> 
> In mijn geval geeft binnen ipython de sys.path een volgend beeld:
> 
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pygame-1.9.2a0-py2.7-macosx-10.9-x86_64.egg
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyInstaller-2.1-py2.7.egg
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.7.3-py2.7.egg
> /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/readline
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
> /Users/vm/Library/Python/2.7/lib/python/site-packages
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Numeric
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PIL
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PyObjC
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gtk-2.0
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/wx-3.0-osx_cocoa
> /Library/Python/2.7/site-packages
> /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/extensions
> /Users/vm/.ipython
> 
> Maar ik heb geen idee wie het /System/Library/... erin heeft geplaatst (en op die plek) met alle gevolgen voor niet vinden van de juiste versies...
> Waarom staan er doublures in?
> Wordt er standaard niet recursief de paden afgegaan?

Omdat dat duur is (veel system calls), en belangrijker omdat het heel verwarrend kan zijn.

> Wie kan hier wat licht op schijnen ?

/Library/Python/2.7/site-packages komt uit site.py (en idem voor /Users/vm/Library/Python/2.7/lib/python/site-packages), en krijg je altijd bij framework builds van Python op OSX. Verwijzigingen naar /System/Library/Python zou je alleen bij een systeem installatie van Python moeten krijgen (d.w.z. de Python die met OSX meegeleverd wordt). en ik snap niet waarom die hier voorkomen tenzij er ergens op een pth bestand staat dat de extras toevoegd. Dat zou ook de dubellingen verklaren. 

Ronald

> 
> .Floris
> 
> _______________________________________________
> Python-nl mailing list
> Python-nl at python.org
> https://mail.python.org/mailman/listinfo/python-nl



More information about the Python-nl mailing list