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.