如何在开发过程中构建 Python CFFI 模块?
Posted
技术标签:
【中文标题】如何在开发过程中构建 Python CFFI 模块?【英文标题】:How can I build Python CFFI modules during development? 【发布时间】:2015-08-29 15:55:33 【问题描述】:在开发过程中构建 CFFI 模块的最佳做法是什么?
现在我正在使用 Makefile:
mylib/_ffi.so: my_lib/build_ffi.py
python $<
然后测试我可以使用:
$ make && python test.py
但这似乎不是最理想的。有没有更好的方法在开发过程中构建 CFFI 模块?
【问题讨论】:
你可以在你的test.py
中说if os.system("make") != 0: raise Exception
【参考方案1】:
如果项目正在使用 setuptools,python setup.py develop
似乎会就地构建库:
$ python setup.py develop
...
Finished processing dependencies for my-lib==0.1
$ ls my_lib/
_ffi.so
...
但似乎没有 make clean
等价物(setup.py clean
只清理 build/
目录),因此不太理想。
【讨论】:
【参考方案2】:不是一个完整的答案,但对“次优”解决方案的建议改进是将 pytest 的运行添加到 make 文件中,如下所示:
all: mylib/_ffi.so
/usr/bin/python test.py
这将允许您只运行 make。
【讨论】:
以上是关于如何在开发过程中构建 Python CFFI 模块?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 cffi 在 C 中嵌入一个返回字符串的 Python 函数?
从 aws-lambda 导入 pysftp 时如何修复导入错误“没有名为 '_cffi_backend' 的模块”