Skip to main content
 首页 » 编程设计

python之使用自定义前缀安装时如何将 lib 目录添加到 sys.path

2025年05月04日14lvdongjie

我有 Autotools(./configure、make、make install)的 C 语言背景,但最近开始使用 Python。借助 Autotools,我可以通过执行 ./configure --prefix=/foo/bar 或多或少地在系统的任何位置安装程序。我发现大多数 Python 程序都使用基于 distutils 的类似系统,通常在名为 setup.py 的文件中。但是,我注意到如果我将项目安装在非标准目录中,例如通过执行 python setup.py install --prefix/foo/bar,那么 中的脚本/foo/bar/bin 将无法获取安装到 /foo/bar/lib/pythonx.y/site-packages 中的包。

我假设在执行脚本时我必须以某种方式将该目录添加到 sys.path 中。我如何以稳定的跨平台方式做到这一点?还是我应该做点别的?

请您参考如下方法:

如果您的自定义安装目录是“foo”,那么您的 python-root 是“bar”,您的 package-root 是“lib” 你可以将它添加到你的脚本中:

import sys 
from os.path import join 
foo = "foo" 
bar = "bar" 
lib = "lib" 
newbase = join(foo, bar, lib) 
sys.path.append(newbase) 

在你的例子中:

foo ='foo' 
bar = 'bar' 
lib = '/lib/pythonx.y/site-packages'