使用 `python setup.py develop` 安装更多文件
Installing more files with `python setup.py develop`
我正在对 Python 2 进行 Swift 扩展。由于 distutils/setuptools 仅支持 C/C++ 扩展,因此我需要修改构建命令使它们构建 Swift 代码。
我对 python setup.py build
和 python setup.py install
的运行似乎是成功的:包及其内容位于正确的位置并且本机扩展在 import
上正确加载。
但是,我的团队更喜欢使用 pip install -e .
,最终会 python setup.py develop
,以稍微加快开发速度;就目前而言,setup.py
不知道将 build
编译的本机库复制到源目录。
在我当前的设置中:
-
SwiftBuildExt
class(扩展了 Cython,因为我们支持语言多样性)...
- ...覆盖
run
以构建 Swift 动态找到的模块 glob
.
run
将条目添加到我将调用的列表中 swift_modules
;
get_output
,在 run
执行后,被覆盖到 return 基地的文件和 swift_modules
.
我需要更改什么才能使 develop
正常工作?
我发现它正在读取 setuptools.command.develop
的源代码:develop
使用 inplace
参数运行 build_ext
命令,它告诉 build_ext
保存构建输出到源代码树。可以使用 build_ext
子类中的 self.inplace
来测试此参数。从那里开始,只需更改复制文件的位置即可。
在Python 3中以不同的方式处理,我还没有探索过。
我正在对 Python 2 进行 Swift 扩展。由于 distutils/setuptools 仅支持 C/C++ 扩展,因此我需要修改构建命令使它们构建 Swift 代码。
我对 python setup.py build
和 python setup.py install
的运行似乎是成功的:包及其内容位于正确的位置并且本机扩展在 import
上正确加载。
但是,我的团队更喜欢使用 pip install -e .
,最终会 python setup.py develop
,以稍微加快开发速度;就目前而言,setup.py
不知道将 build
编译的本机库复制到源目录。
在我当前的设置中:
-
SwiftBuildExt
class(扩展了 Cython,因为我们支持语言多样性)... - ...覆盖
run
以构建 Swift 动态找到的模块glob
. run
将条目添加到我将调用的列表中swift_modules
;get_output
,在run
执行后,被覆盖到 return 基地的文件和swift_modules
.
我需要更改什么才能使 develop
正常工作?
我发现它正在读取 setuptools.command.develop
的源代码:develop
使用 inplace
参数运行 build_ext
命令,它告诉 build_ext
保存构建输出到源代码树。可以使用 build_ext
子类中的 self.inplace
来测试此参数。从那里开始,只需更改复制文件的位置即可。
在Python 3中以不同的方式处理,我还没有探索过。