Python C扩展:仅编译修改后的源文件
作者:互联网
我正在开发一个包含C扩展的python包.当我使用setup.py脚本或使用pip安装软件包时,C源文件都被编译和链接以获得单个.so库,然后可以在Python源代码中导入它们.在开发过程中,我需要对源代码进行多次更改(测试,调试等).我发现重新安装软件包涉及重建所有C源文件,即使只更改了一个文件的一小部分.显然,这需要相当多的时间.
我知道开发模式(python setup.py develop或pip install -e)放置了源文件的链接,以便在重新导入模块时立即看到所做的更改.但是,这仅适用于.py源文件而不适用于C扩展,必须在每次更改后重新编译.
有没有办法让setup.py查看构建目录中的.o文件(在开发模式下)并使用它们的时间戳来确定哪些需要重新编译?我正在考虑GNU Make基于时间戳执行选择性编译的方式.谢谢
解决方法:
我建议使用Make(其他其他构建系统,如CMake)进行开发,并将setup.py仅用于最终安装/部署.我已经完成了类似的Python C项目,它的工作方式很棒.
标签:python,c-2,setup-py 来源: https://codeday.me/bug/20190709/1407783.html