Lat*_*ius 37 linux python path ubuntu
在 Ubuntu (10.10) 系统上,我有一个 Python 包,可以将自身安装到/usr/local/lib/python2.6/site-packages/
. 这不包含在默认路径 (sys.path) 中。如何将此目录添加到路径中?
设置$PYTHONPATH
环境变量当然是一种解决方案,但我正在寻找一种更优雅的方法来做到这一点。例如easy_install
还把安装的包放在里面,我的 sys.path 看起来像这样:
['', '/usr/local/lib/python2.6/dist-packages/keyring-0.5.1-py2.6.egg',
'/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk',
'/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload',
'/usr/local/lib/python2.6/dist-packages', '/usr/lib/python2.6/dist-packages',
'/usr/lib/python2.6/dist-packages/PIL', '/usr/lib/pymodules/python2.6',
'/usr/lib/pymodules/python2.6/gtk-2.0']
Run Code Online (Sandbox Code Playgroud)
所以该路径显然不是 Python 二进制文件中内置的默认路径。
是否有一个包含上述条目的配置文件?或者可以通过什么方式修改它?
Mik*_*kel 29
该网站模块文档和修改Python的搜索路径似乎是你在找什么。
据我了解,这些条目被添加到sys.path
:
/usr/lib/python2.6/site.py
/usr/lib/python2.6/dist-packages/site.py
更改它的最简单方法是添加一个/usr/local/lib/python2.6/dist-packages/site-packages.pth
包含../site-packages
.
或者,也许您可以教软件包使用site.getsitepackages()
?
我想总结一下我对 python 路径修改的发现。有两种方法可以做到。
PYTHONPATH
在默认路径(见下文)中找到的任何.pth文件都将其内容包含到.pth文件中sys.path
。所述.pth文件的格式很简单:每行一个(文件夹)路径。令人惊讶的是,路径可以是绝对的,也可以是相对于.pth文件的。
默认路径是解释器所在的<some-prefix>/lib/python<version>/site-packages
位置<some-prefix>
,通常是/usr/
.
PYTHONPATH
是操作系统的环境变量。在 unix 系统上,您可以按env
. 如@TestUser16418 所述,此类变量的全局修改是通过文件夹内的.sh脚本完成的/etc/profile.d/
。
您可以创建一个/etc/profile.d/local_python.sh
包含内容的新文件
PYTHONPATH="/usr/local/lib/python2.6/site-packages/":"${PYTHONPATH}"
export PYTHONPATH
Run Code Online (Sandbox Code Playgroud)
这将为PYTHONPATH
您系统上的所有登录用户设置变量。
归档时间: |
|
查看次数: |
145683 次 |
最近记录: |