簡體   English   中英

Cython -- 在 setup.py 中嵌入標志

[英]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

現在您只需鍵入makemake compile即可獲得所需的效果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM