【发布时间】:2011-07-11 09:49:34
【问题描述】:
我已经使用 ctypes 为 units library 编写了 Python 绑定。绑定本身只有大约 100 行 Python。该库对 tcl 有不必要的依赖(出于 Python 绑定的目的),如果 tcl 不存在,配置脚本将失败。但是,使用gcc -Wl,-soname,units.so -o units.so -fPIC -shared units.c 可以很好地构建库。
我现在想释放这些绑定。我可以通过三种方式做到这一点。
- 使用基本 setup.py 自行发布绑定,并在文档中提供 C 库的构建、下载和安装说明。
- 释放绑定以及原始库源并提供一个 setup.py 来处理 C 库的编译和安装。这对我来说显然是更多的工作。
- 只需发布 .py 文件,让用户无需担心安装和依赖问题。
如果我选择选项 2,我应该将库放在哪里?我应该将它放在与 .py 文件相同的目录中,允许我假设 lib_name = CDLL('./units.extension'),还是应该将它放在往往位于链接器路径中的目录中(如 /lib)?此外,对于 a) 可能没有 C 编译器和 b) 没有放置共享库的标准位置的 Windows 机器,这通常是如何处理的?
这些选项中的哪一个是首选,我应该如何处理 Windows 案例?
【问题讨论】:
-
这只是个人意见,但我只是释放绑定(如果以包形式释放它们,只需为原始库添加对包的依赖即可)。