繁体   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