我正在使用一些大型Python项目来处理几个C / C ++扩展。目前,每次我想要在新机器上运行代码时,我必须从存储库下载所有内容,然后多次运行python setup.py install
,每次扩展一次......并且假设计算机安装了一个C编译器 - 如果它没有安装,那就是另外一两步。
有没有什么方法可以预编译所有的C扩展,这样当我将存储库下载到新机器时,一切都可以直接使用而无需单独安装所有这些子组件?我知道这在不同平台上可能效果不佳(或者根本没有?)但是我们说我在64位Windows 8机器上预编译并想在另一个64位Windows 8上安装它机器 - 可能吗?如果是这样,我将如何去做呢?
答案 0 :(得分:1)
有可能。您问的是Creating Built Distributions。
您可以创建如下构建的分发:
python setup.py bdist
您甚至可以选择不同的格式,例如:
python setup.py bdist --format=wininst
zip
zip文件(.zip)[默认] wininst
适用于Windows的自解压ZIP文件msi
Microsoft Installer 所有这一切都可以使用标准distutils
模块。
如果您想使用更现代的方法并使用setuptools
,可以为Windows构建Platform Wheels:
python setup.py bdist_wheel
您可以做的最后一件事是为所有扩展程序一起创建setup.py
文件。即使您仅安装源代码分发,您的工作也会少得多。使用构建分发,只需执行一步。