赞
踩
我正在使用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?
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。