【问题标题】:Installing more files with `python setup.py develop`使用 `python setup.py develop` 安装更多文件
【发布时间】:2019-01-15 02:18:58
【问题描述】:

我正在开发 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 工作,我需要进行哪些更改?

【问题讨论】:

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


    【解决方案1】:

    我发现它正在读取setuptools.command.develop 的源代码:develop 运行带有inplace 参数的build_ext 命令,它告诉build_ext 将构建输出保存到源代码树。这个参数可以通过build_ext 子类中的self.inplace 进行测试。从那里,只需更改文件的复制位置即可。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-06
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      相关资源
      最近更新 更多