【发布时间】:2011-05-30 14:18:58
【问题描述】:
在this recommendation 之后,我编写了一个本地 C 扩展库来通过 ctypes 优化 Python 模块的一部分。我选择了 ctypes 而不是编写 CPython 原生库,因为它更快更容易(只有几个函数,里面有所有紧密的循环)。
我现在遇到了一个障碍。如果我希望使用 distutils 使用 python setup.py install 轻松安装我的工作,那么 distutils 需要能够构建我的共享库并安装它(大概安装到 /usr/lib/<em>myproject</em> 中)。但是,这不是 Python 扩展模块,据我所知,distutils 无法做到这一点。
我找到了一些其他有此问题的人的参考资料:
- Someone on numpy-discussion with a hack back in 2006.
- Somebody asking on distutils-sig and not getting an answer.
- Somebody asking on the main python list and being pointed to the innards of an existing project。
我知道我可以做一些原生的事情,而不是使用 distutils 作为共享库,或者确实使用我的发行版的打包系统。我担心这会限制可用性,因为不是每个人都能轻松安装它。
所以我的问题是:使用 distutils 分发共享库的当前最佳方式是什么,它将被 ctypes 使用,但其他方式是 OS-native 而不是 Python 扩展模块?
如果您可以扩展它并证明为什么这是最好的方法,请随意回答上面链接的黑客之一。如果没有更好的办法,至少所有信息都在一个地方。
【问题讨论】: