将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
选项不好,因为它会创建我不需要的文件夹层级。
2 个回答
0
也许你可以使用distutils的替代安装功能,这样可以帮助你删除那些没用的层级文件夹。
试试下面这样的做法:
python setup.py install --home=../some/specific/place \
--install-purelib=. \
--install-platlib=.
9
我终于找到答案了!这个选项是 -b(或者 --build_lib)
python setup.py build_ext -b ../some/specific/place/