Domanda

Ecco il mio .bash_profile

PYTHONPATH=".:/home/miki725/django/django:$PYTHONPATH"
export PYTHONPATH

Allora ho python aperta però la directory aggiungo in .bash_profile non è la prima:

Python 2.4.3 (#1, Sep 21 2011, 20:06:00) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-51)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> for i in sys.path:
...     print i
... 

/usr/lib/python2.4/site-packages/setuptools-0.6c9-py2.4.egg
/usr/lib/python2.4/site-packages/flup-1.0.2-py2.4.egg
/usr/lib/python2.4/site-packages/MySQL_python-1.2.3c1-py2.4-linux-i686.egg
/usr/lib/python2.4/site-packages/django_form_utils-0.1.7-py2.4.egg
/usr/lib/python2.4/site-packages/mechanize-0.2.1-py2.4.egg
/usr/lib/python2.4/site-packages/Django-1.2.1-py2.4.egg
/usr/lib/python2.4/site-packages/mercurial-1.6-py2.4-linux-i686.egg
/usr/lib/python2.4/site-packages/lxml-2.2.7-py2.4-linux-i686.egg
/usr/lib/python2.4/site-packages/django_registration-0.7-py2.4.egg
/usr/lib/python2.4/site-packages/sorl_thumbnail-3.2.5-py2.4.egg
/usr/lib/python2.4/site-packages/South-0.7.2-py2.4.egg
/usr/lib/python2.4/site-packages/django_keyedcache-1.4_1-py2.4.egg
/usr/lib/python2.4/site-packages/django_livesettings-1.4_3-py2.4.egg
/usr/lib/python2.4/site-packages/django_app_plugins-0.1.1-py2.4.egg
/usr/lib/python2.4/site-packages/django_signals_ahoy-0.1_2-py2.4.egg
/usr/lib/python2.4/site-packages/pycrypto-2.3-py2.4-linux-i686.egg
/usr/lib/python2.4/site-packages/django_threaded_multihost-1.4_0-py2.4.egg
/usr/lib/python2.4/site-packages/PIL-1.1.7-py2.4-linux-i686.egg
/usr/lib/python2.4/site-packages/pyOpenSSL-0.11-py2.4-linux-i686.egg
/usr/lib/python2.4/site-packages/ZSI-2.0_rc3-py2.4.egg
/usr/lib/python2.4/site-packages/PyXML-0.8.4-py2.4-linux-i686.egg
/usr/lib/python2.4/site-packages/pyquery-0.6.1-py2.4.egg
/usr/lib/python2.4/site-packages/pip-1.0.1-py2.4.egg
/usr/lib/python2.4/site-packages/virtualenv-1.6.1-py2.4.egg
/usr/lib/python2.4/site-packages/simplejson-2.1.6-py2.4-linux-i686.egg
/home/miki725
/home/miki725/django/django
/usr/lib/python24.zip
/usr/lib/python2.4
/usr/lib/python2.4/plat-linux2
/usr/lib/python2.4/lib-tk
/usr/lib/python2.4/lib-dynload
/usr/lib/python2.4/site-packages
/usr/lib/python2.4/site-packages/Numeric
/usr/lib/python2.4/site-packages/PIL
/usr/lib/python2.4/site-packages/gtk-2.0
>>> 
>>> 
>>> 
>>> 
>>> import django
>>> django.__file__
'/usr/lib/python2.4/site-packages/Django-1.2.1-py2.4.egg/django/__init__.pyc'
>>> 

Come si aggiunge a un percorso di pitone in .bash_profile quindi sarebbe in principio. Questo è per hosting condiviso. Ho bisogno di essere in grado di importare i miei Django installano invece di utilizzare di default del sistema.

Grazie

È stato utile?

Soluzione

La cosa migliore è quella di modificare sys.path in fase di esecuzione. In un ambiente di hosting condiviso è comune per fare questo nel file .wsgi. Si potrebbe fare qualcosa di simile:

import sys
sys.path.insert(0, '/home/miki725/django/django')

Se si aggiunge export PYTHONSTARTUP=/home/miki725/.pythonrc al vostro .bash_profile, è possibile aggiungere che il file .pythonrc, e sarà eseguito prima un prompt interattivo viene mostrato come bene.

Altri suggerimenti

Come approccio alternativo, si potrebbe modificare sys.path direttamente dall'interprete:

sys.path.insert(0,"/home/miki725/django/django")

Direi che il tuo PYTHONPATH viene modificata quando il modulo sito viene importato. Si prega di dare un'occhiata al modulo utente per fornire all'utente configurazione SPECIFICI (fondamentalmente solo anteporre le directory che ti interessa per sys.path).

. Nota: il modulo user è attualmente deprecato, ma per Python 2.4 questo dovrebbe funzionare

Edit: Solo per completezza, per Python> = 2.6 (modulo user deprecato), è necessario creare un file nella directory usercustomize.py site-packages locale come spiegato qui .

Come indicato da altri, si modifica il sys.path direttamente in Python in questo modo:

sys.path.insert(0,"/home/miki725/django/django")

Ma penso che virtualenv è la soluzione che state cercando. Questo strumento consente di creare ambienti Python isolati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top