【问题标题】:What is the best way to distribute a python program extended with custom c modules?分发使用自定义 c 模块扩展的 python 程序的最佳方法是什么?
【发布时间】:2010-09-22 15:01:54
【问题描述】:
我已经探索 python 好几年了,但现在我正在慢慢学习如何使用 c。使用python documentation,我学会了如何用一些 c 扩展我的 python 程序,因为这似乎是开始使用它的合乎逻辑的方式。我现在的问题是如何分发这样的程序。
我想我的问题的核心是如何编译东西。我可以在我自己的机器(gentoo)上轻松地做到这一点,但是像 Ubuntu 这样的二进制发行版可能默认没有可用的编译器。另外,我有几个朋友是mac用户。我的直觉告诉我,我不能只用自己的机器编译然后在另一台机器上运行。有谁知道我能做什么,或者有一些在线资源可以学习这样的东西吗?
【问题讨论】:
标签:
python
c
linux
macos
software-distribution
【解决方案1】:
请阅读 distutils。具体来说,Extension Modules 部分。
对编译器做出假设是不好的策略;你的直觉可能没有所有的事实。你可以做一些市场调查——询问他们在扩展模块的源代码分发方面可以处理什么。
创建适当的 distutils setup.py 并查看谁可以运行它以及谁不能运行它相对容易。
内置的二进制发行版很常见。也许您可以注册一些用户将帮助创建二进制发行版 - 使用 OS-native 安装程序 - 出于某些考虑。
【解决方案2】:
S。洛特是对的。您应该首先查看 distutils。在你从 distutils 中了解了你需要的东西之后,看看setuptools。 Setuptools 建立在 distutils 之上,使您的用户可以轻松安装。你曾经使用过 easy_install 或 Python Eggs 吗?这就是接下来的内容。