【发布时间】:2014-04-25 19:12:07
【问题描述】:
一直在玩 cython。通常使用 Python 编程,但在前世使用过 C。 我不知道如何制作独立的可执行文件。
我已经下载了 cython,我可以制作一个 .pyx 文件(这只是一个带有 .pyx 扩展名的普通 Python 文件),它在 Python shell 中执行,使用: 导入pyximport; pyximport.install()
我可以在命令行生成一个 .c 文件:cython file.pyx 我可以通过构建标准 setup.py 并执行来生成 .so 文件:
setup.py build_ext --inplace
我尝试使用带有各种选项的 gcc 从 .so 文件中制作可执行文件,但总是有大量丢失的文件、头文件等。我尝试从几乎所有地方指向头文件,但没有成功,我不太熟悉所有 gcc 选项的作用,或者即使我应该使用 gcc。
由于我可以在 Python shell 中运行我的程序,但不能在命令行中运行我的程序,所以我在这里有一个断开连接,(我不希望用户必须进入 shell、导入模块等)。
我在这里错过了什么?
【问题讨论】:
-
cython myfile.pyx(不带选项)生成一个 .c 文件。当我使用 --embed 选项时,它会生成一个大 100 行的 .c 文件。对它们进行区分表明添加了一堆 ifdef。我仍然有一个问题:我如何使用这个.so?我似乎无法获得正确的编译器选项组合。阅读 numpy 的 cython 文档,一种方法是制作一个导入 .so 的包装 python 程序。我很惊讶当我隐藏 .c 和 .pyx 文件然后说:import NameOfMyFile without extensions,它似乎选择了 .so 文件。
-
@ostrokach 也链接到Can Cython compile to an EXE?
标签: python packages cython executable