我和一个设置.py这会在build\u ext步骤中创建一大堆SWIG接口文件。这需要首先运行,因为后续的构建步骤需要完整的python文件列表才能正常工作(比如将python文件复制到包目录,创建egg,创建源代码列表,等等)。在
这是您当前执行setup.py install
时发生的情况:
running install
running bdist_egg
running egg_info
running install_lib
running build_py
running build_ext
build_py
步骤尝试将找到的所有python文件复制到构建目录中。在build_ext
运行之前,这些文件不存在(swig创建了一堆.py文件)。在
This answer建议更改sub_commands
,但这似乎没有任何作用。在
我试着像这样子类化install
命令类,以便在执行其他操作之前运行build_ext
:
…然后使用cmdclass
进行设置:
setup(
...
cmdclass = {'install' : Build_ext_first}
)
但这并不起作用,因为super
不适用于旧样式的类,install
显然也不从{
如何先build_ext
?在
执行super()的旧方法似乎是向前兼容的,所以我只是这样做了:
因为害怕在2岁的帖子上发帖。我认为解决这个问题的正确方法是在“构建”阶段修复它:
这样它就可以安装bdist_wheel(还没有测试其他东西)。在
注意,
^{pr2}$super
语法在Python 2中有点不同:相关问题 更多 >
编程相关推荐