有没有办法告诉Python有关其他site-packages位置而不修改现有脚本?
在我的CentOS 5.5服务器上,我安装了一个Python 2.7安装,/opt/python2.7.2并且有一个site-packages文件夹/opt/python2.7.2/lib/python2.7/site-packages.
原因是我不想打扰5.5发行版附带的现有Python 2.4安装.
但是,第三方Python应用程序还在以下位置添加了一个site-packages文件夹:/usr/local/lib/python2.7/site-packages并将其自身安装在该位置.
这部分是我的错,因为我在安装之前没有PREFIX在应用程序中进行调整Makefile,但现在我无能为力.
我知道我可以这样做:
import sys; sys.path.insert(0, "/usr/local/lib/python2.7/site-packages")
Run Code Online (Sandbox Code Playgroud)
但是,这将涉及我追踪每个脚本并添加上述内容,如果将来有更新,这是不理想的.
为了解决这个问题,我在/opt/python2.7.2/lib/python2.7/site-packages第三方应用程序的位置创建了一个符号链接:
ln -sf /usr/local/lib/python2.7/site-packages/theapp /opt/python2.7.2/lib/python2.7/site-packages/theapp
这似乎工作正常,但我想知道是否有更好的方法?
Sha*_*hin 43
"路径配置文件是一个文件,其名称具有表格
name.pth,并存在于上述四个目录之一中;其内容是要添加到的附加项目(每行一个)sys.path."
在您的情况下,您应该能够通过简单地放入.pth包含要包含的目录路径的文件来实现您想要的:
[root@home]$ echo "/usr/local/lib/python2.7/site-packages/" > /opt/python2.7.2/lib/python2.7/site-packages/usrlocal.pth
Run Code Online (Sandbox Code Playgroud)
您可以使用包装器脚本替换python可执行文件,该脚本会将您添加的安装路径附加到PYTHONPATH。但是,这太过分了。
但是我会尝试修复附件的安装,以便它可以正确进入站点软件包目录。
| 归档时间: |
|
| 查看次数: |
43692 次 |
| 最近记录: |