2

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

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

4

2 回答 2

1

如果您的自定义安装目录是“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'
于 2011-12-27T09:40:34.953 回答
0

Another common tool is to use virtualenv to create another python repository that is not the system-wide one and install your package inside it.

>> pip install virtualenv
>> virtualenv --distutils test_env
>> source ./test_env/bin/activate
>> cd <your package>
>> python setup.py install
于 2011-12-27T18:42:49.483 回答