Nye greier på python-stien

Jeg krangler tidvis med python på sen server som kjører freeBSD, som jeg leier hos subsys.no. Hovedpoenget med prosjektet er å lære django og python for mer effektiv webutvikling/prototyping. Å lære ny teknologi handler ofte, for min del i alle fall, om å sitte fast før jeg får med meg hvordan ting fungerer. Denne posten inneholder info om hvordan legge til foldere på python-stien, slik at importering med «from module import stuff» fungerer. Grunnen til at jeg blogger dette er at jeg glemmer det mellom hver gang det er nyttig, og derfor fint å ha tilgjengelig på nett, for meg og kanskje deg.

I roten på webhotellet mitt (og ditt) ligger det en usynlig fil som heter .bash_profile. Den kan hete andre ting som .bashrc, men i mitt tilfelle altså .bash_profile. Denne kan redigeres med nano, eller andre terminal-baserte editorer.

$ nano .bash_profile

Legg til en ny sti:

export PYTHONPATH=/home/users/dittbrukernavn/mappen_du_vil_adde:$PYTHONPATH

Lagre (ctrl + o i nano).

Du må logge ut og inn igjen via ssh for at dette skal tre i kraft.

For å teste om ting virket kan du printe ut sys.path’n i python:

$ python
Python 2.6.5 (r265:79063, May 21 2010, 00:49:11) 
[GCC 4.2.1 20070719  [FreeBSD]] on freebsd7
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path

det du får ut på skjermen er da en liste over foldere som er på python-stien:
[», ‘/usr/local/lib/python2.6/site-packages/setuptools-0.6c11-py2.6.egg’, ‘/usr/local/lib/python2.6/site-packages/pytz-2010h-py2.6.egg’, ‘/usr/local/lib/python2.6/site-packages/Pygments-1.3.1-py2.6.egg’, ‘/usr/local/lib/python2.6/site-packages/boto-1.9b-py2.6.egg’, ‘/usr/local/lib/python2.6/site-packages/lxml-2.2.4-py2.6-freebsd-7.3-RELEASE-amd64.egg’, ‘/usr/local/lib/python2.6/site-packages/simplejson-2.1.1-py2.6-freebsd-7.3-RELEASE-amd64.egg’, ‘/usr/local/lib/python2.6/site-packages/Genshi-0.6-py2.6.egg’, ‘/usr/local/lib/python2.6/site-packages/flup-1.0.2-py2.6.egg’, ‘/home/users/dittbrukernavn/mappen_du_vil_adde‘, ‘/usr/local/lib/python26.zip’, ‘/usr/local/lib/python2.6’, ‘/usr/local/lib/python2.6/plat-freebsd7’, ‘/usr/local/lib/python2.6/lib-tk’, ‘/usr/local/lib/python2.6/lib-old’, ‘/usr/local/lib/python2.6/lib-dynload’, ‘/usr/local/lib/python2.6/site-packages’, ‘/usr/local/lib/python2.6/site-packages/PIL’]

Hvori den nye forhåpentligvis er å finne.