如何在bash中添加到Python路径的开头

1 投票
4 回答
3546 浏览
提问于 2025-04-17 07:27

这是我的 .bash_profile

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

然后我打开python,但我在 .bash_profile 中添加的目录并不是第一个:

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'
>>> 

我该如何在 .bash_profile 中添加python路径,让它排在最前面呢?这是为了共享主机。我需要能够导入我的django安装,而不是使用系统默认的。

谢谢

4 个回答

0

我想说,当你导入site模块时,你的PYTHONPATH会被修改。你可以看看user模块,它可以帮助你进行用户特定的配置(基本上就是把你感兴趣的目录加到sys.path的前面)。

注意:user模块现在已经不推荐使用了,但在Python 2.4中应该可以用。

补充说明:对于Python版本大于等于2.6(user模块不推荐使用),你应该在本地的site-packages目录下创建一个usercustomize.py文件,具体说明可以参考这里

0

作为一种替代方法,你可以直接在解释器中修改 sys.path

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

你最好的办法是在运行时修改 sys.path。在共享主机环境中,通常会在你的 .wsgi 文件里这么做。你可以这样写:

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

如果你在 .bash_profile 文件中添加 export PYTHONSTARTUP=/home/miki725/.pythonrc,那么你可以把你的 .pythonrc 文件添加进去,这样在显示交互式提示符之前,它也会被执行。

撰写回答