Come aggiungere di iniziare il percorso di Python in bash
-
26-10-2019 - |
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
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.