python setup.py build_ext,python – setup.py:在其他任何事情之前运行build_ext

博主在使用setup.py时遇到一个问题,即build_ext步骤需要先于其他步骤运行,因为后续构建过程依赖于SWIG生成的Python文件。尝试通过修改sub_commands和自定义install类来调整构建顺序未成功。寻求解决方案来确保build_ext在安装过程中首先执行。
摘要由CSDN通过智能技术生成

我正在使用setup.py,它在build_ext步骤中创建了一大堆SWIG接口文件.这需要先运行,因为后续的构建步骤需要一个完整的

python文件列表才能正常工作(比如将python文件复制到包目录,创建egg,创建源列表等).

当你进行setup.py安装时,这是当前发生的事情:

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,但似乎没有做任何事情.

我试着像这样继承class install类,在其他任何事情之前运行build_ext:

class Build_ext_first(setuptools.command.install.install):

def run(self):

self.run_command("build_ext")

super(Build_ext_first, self).run()

..然后使用cmdclass进行设置:

setup(

...

cmdclass = {'install' : Build_ext_first}

)

但是这不起作用,因为super不能用于旧式类,并且安装显然不会从对象继承.

我该如何先做build_ext?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值