将Python扩展安装到特定位置

时间:2011-06-15 18:24:42

标签: python distutils

我的项目混合纯Python代码和Cython扩展以进行优化和与C库链接。我的Python项目有一个源代码树,Cython和C代码有一个源代码树。我的Cython扩展每个都有一个setup.py文件来构建它们。实际上,对于每个扩展,我执行以下操作:

python setup.py build_ext --inplace
mv myext.so ../some/specific/place/

有没有办法指定distutils安装我的扩展程序的位置(如果可能,使用相对路径),而不是使用--inplace后跟mv?使用--prefix选项并不好,因为它会创建我不需要的文件夹层次结构。

2 个答案:

答案 0 :(得分:9)

我终于找到了答案!选项是-b(或--build_lib)

python setup.py build_ext -b ../some/specific/place/

答案 1 :(得分:0)

也许您可以使用distutils的alternate installation功能,这将允许您删除无用的层级文件夹。

尝试这样的事情:

python setup.py install --home=../some/specific/place \
                        --install-purelib=. \
                        --install-platlib=.