我正在研究 Python 2 的 Swift 扩展。由于 distutils/setuptools 仅支持 C/C++ 扩展,因此我需要修改构建命令以使其构建 Swift 代码。
我运行的python setup.py build
和python setup.py install
显示成功:包及其内容位于正确的位置,并且 native 扩展正确加载在导入
上。
但是,我的团队更喜欢使用 pip install -e .
,它最终会执行 python setup.pydevelop
来稍微加快开发速度;就目前情况而言,setup.py
不知道将 build
编译的 native 库复制到源目录。
在我当前的设置中:
SwiftBuildExt
类(它扩展了 Cython 的类,因为我们,呃,支持语言多样性)...- ...覆盖
run
以构建使用glob
动态找到的 Swift 模块。 run
将条目添加到一个列表中,我将其称为swift_modules
;get_output
在执行run
后被覆盖以返回基础文件和swift_modules
。
我需要更改什么才能让 develop
正常工作?
最佳答案
我发现它正在阅读 setuptools.command.develop
的源代码: develop
使用 inplace
参数运行 build_ext
命令,该参数告诉 build_ext
将构建输出保存到源树。可以预见的是,可以使用 build_ext
子类中的 self.inplace
来测试此参数。从那里开始,只需更改文件的复制位置即可。
它在 Python 3 中以不同的方式处理,我还没有探索过。
关于python - 使用 `python setup.py develop` 安装更多文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54191874/