[英]Compile Python C Extensions with cx_Freeze
我正在嘗試使用具有C擴展模塊的Python 3軟件包在Windows上創建一個exe。 在distutils中,您可以創建如下擴展名:
from distutils.core import setup, Extension
module1 = Extension('demo',
sources = ['demo.c'])
setup (name = 'PackageName',
version = '1.0',
description = 'This is a demo package',
ext_modules = [module1])
然后,將使用相應的編譯器編譯該擴展,並使用以下命令將其放置在其他模塊的旁邊:
python setup.py build_ext --inplace
cx_Freeze是一個模塊,可以將您的代碼與Python解釋器和相關軟件包一起打包到exe文件中。 然后,最終用戶無需安裝Python就可以使用您的程序。 不幸的是,cx_Freeze沒有擴展類,我找不到用cx_Freeze處理編譯的方法。
我不確定的一個解決方案是先使用distutils / setuptools構建適當的擴展,然后使用cx_Freeze創建可執行文件。 不過,我不想重新發明輪子,所以我想知道在這個領域有更多經驗的其他人是否有解決方案。
我找到了可行的解決方案。 我可以從distutils導入Extension,然后從cx_Freeze將其傳遞到安裝程序中:
from cx_Freeze import setup
from distutils.core import Extension
...
setup=(...
ext_modules=Extension(...))
這是有道理的,因為cx_Freeze建立在distutils之上。 最初,我試圖使用setuptools.setup
,但這不起作用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.