使用“ python setup.py development”安装更多文件

时间:2019-01-15 02:18:59

标签: python python-2.7 python-2.x setuptools distutils

我正在研究Python 2的Swift扩展。由于distutils / setuptools仅支持C / C ++扩展,因此我想修改构建命令以使它们构建Swift代码。

我的python setup.py buildpython setup.py install运行成功:软件包及其内容位于正确的位置,并且本机扩展名正确加载到import上。

但是,我的团队更喜欢使用pip install -e .(最终会使用python setup.py develop)来加快开发速度;而且,setup.py仍然不知道将build编译的本机库复制到源目录。

在我当前的设置中:

  • SwiftBuildExt类(扩展了Cython的类,因为我们支持语言多样性)...
  • ...重写run来构建可以通过glob动态找到的Swift模块。
  • run将条目添加到我称为swift_modules的列表中;
  • get_output在执行run之后,将被覆盖以返回基础文件和swift_modules

要使develop工作,我需要更改什么?

1 个答案:

答案 0 :(得分:0)

我发现它正在读取setuptools.command.develop的源代码:develop使用build_ext参数运行inplace命令,该命令告诉build_ext保存构建输出到源代码树。可预测地使用self.inplace子类中的build_ext测试该参数。从那里开始,只需更改文件的复制位置即可。

在Python 3中,它的处理方式有所不同,我没有探讨过。