【发布时间】:2014-07-31 13:28:12
【问题描述】:
我正在为 C 库编写一些绑定,但不确定如何配置所有这些以进行分发,因此可以 pip install 我的包。
假设我有以下文件:
library.clibrary.hwrapper.py
为了让我的包装库工作,有必要:
- 编译 library.c 并创建一个共享库
- 在
library.h上运行ctypesgen以生成ctypes 代码
命令如下:
gcc -Wall -fPIC -c library.cgcc -shared -Wl,-soname,liblibrary.so.1 -o liblibrary.so.1.0 library.octypesgen.py library.h -L ./ -l library -o _library.py
运行setup.py 还取决于安装了ctypesgen 的用户。
我不知道如何设置这一切,以便对图书馆感兴趣的人可以简单地pip install library 并让这一切自动发生。有谁能帮忙吗?
【问题讨论】:
-
您可以将所需依赖项的
import放在安装脚本顶部的try/except中,并将用于pip 安装依赖项的代码放在except块中 -
不,我认为您需要将其放入
install_requires或类似指令中。 -
是的,那会更正确,我不确定如何。旁注,我从你的博客中认出了你的 SO 用户名,我喜欢你关于马尔科夫链的帖子,用它作为我自己的马尔科夫链 irc bot 的基础:)
-
请注意,要求是 C 库 - 它的“分发版”(library.so + library.h)不是 Python 包,自然不会在 PyPI 上列出(因此依赖项不起作用) .
标签: python ctypes setuptools distutils