[英]Cython --embed flag in setup.py
我開始用 Cython 編譯我的 Python 3 項目,我想知道是否可以將我當前的編譯時間工作流減少到一條指令。
到目前為止,這是我的 setup.py:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Build import cythonize
extensions = [
Extension("v", ["version.py"]),
Extension("*", ["lib/*.py"])
]
setup(
name = "MyFirst App",
ext_modules = cythonize(extensions),
)
這是我從 shell 運行以獲取我的可執行文件的內容:
python3 setup.py build_ext --inplace
cython3 --embed -o main.c main.py
gcc -Os -I /usr/include/python3.5m -o main main.c -lpython3.5m -lpthread -lm -lutil -ldl
整個過程工作得很好,我想知道是否有辦法將最后兩條指令也嵌入到 setup.py 腳本中。
謝謝
首先查看您正在使用的實用程序的文檔。 如果有復雜的arguments,可能有配置文件。
這應該整理你的第一個命令:
# setup.cfg
[build_ext]
inplace=1
我在文檔中沒有看到有關構建后步驟的任何內容,而且我真的不希望此過程之后執行 shell 命令。 build_ext
用於構建make
非常可用並且通常用於構建 C 二進制文件。
將Makefile
添加到您的項目中。 如果您安裝了gcc
,您可能已經安裝了make
:
# Makefile (lines need to start with tab)
compile:
python3 setup.py build_ext --inplace
cython3 --embed -o main.c main.py
gcc -Os -I /usr/include/python3.5m -o main main.c -lpython3.5m -lpthread -lm -lutil -ldl
現在您只需鍵入make
或make compile
即可獲得所需的效果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.