将Python扩展程序安装到特定位置

问题描述

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

解决方法

        我终于找到答案了!该选项是-b(或--build_lib)
python setup.py build_ext -b ../some/specific/place/
    ,        也许您可以使用distutils的备用安装功能,使您可以删除无用的层次结构文件夹。 试试这样的事情:
python setup.py install --home=../some/specific/place \\
                        --install-purelib=. \\
                        --install-platlib=.