我的项目混合纯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
选项并不好,因为它会创建我不需要的文件夹层次结构。
答案 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=.