python - 将Python转换为C,然后用Cython编译成exe

标签 python c compilation cython

我已经在 Cython 上苦苦挣扎了几个小时,不知道如何让它正常工作 我已经成功使用此命令将 Python 转换为 C

    Cython-0.21>cython.pyc --embed -o example.c example.py

但是我不知道该怎么办。我尝试使用 cl.exe 和 gcc 来编译它,正如 stackoverflow 上的其他线程和帖子所建议的那样,但我每次都会遇到问题。

有人可以为我指明正确的方向,或者给我一个关于如何做到这一点的示例和彻底的指南吗?

此命令:

Cython-0.21>D:\Program\MinGW\bin\gcc -c -ID:\Program\Python2\include -o example.o example.c

输出 libgmp-10.dll 丢失,但事实并非如此,我用谷歌搜索了这个主题,但一无所获。

还有这个:

My edit:
cl.exe  /nologo /Ox /MD /W3 /GS- /DNDEBUG -ID:\Program\Python2\include -Ipathtosourcelocation /Tnameofsource /link /OUT:"test.exe" /SUBSYSTEM:CONSOLE /MACHINE:X86 /LIBPATH:D:\Program\Python2\libs /LIBPATH:D:\Program\Python2\PCbuild
Original command:
cl.exe  /nologo /Ox /MD /W3 /GS- /DNDEBUG -Ic:\Python31\include -Ic:\Python31\PC /Tcsmalltest1.c /link /OUT:"test.exe" /SUBSYSTEM:CONSOLE /MACHINE:X86 /LIBPATH:c:\Python31\libs /LIBPATH:c:\Python31\PCbuild

我根本就看不懂。我尝试将其中的所有内容更改为似乎正确的内容,但我刚刚遇到了问题,一个是当我尝试编译时它说我的源文件不存在,另一个是它不是有效的名称因此它将跳过源文件参数。

那么有人可以为我提供另一种行动方案或为我分解这些吗?或者修复错误所在的位置?

[编辑] 部分解决,参见我的其他回复。

尽管如此,我仍然有一个问题。当我打开程序时,我收到以下消息:prntscr.com/4ull6p“应用程序尝试错误地加载 C 运行时库。”

我应该做什么?

最佳答案

这可能会也可能不会解决您的问题,但请确保您的文件(即 .dll)位于正确的位置...

如果使用 Windows 7(您未指明),请按照以下位置操作:

enter image description here

From Here

关于源文件丢失,请确保您在命令行参数中使用完整的路径名。示例“c:\dir1\dir2\filename.c”

一些实现包括工具。例如这个可以让您轻松获取路径变量:numpy.get_include()。查看其他示例From Here

关于python - 将Python转换为C,然后用Cython编译成exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26285629/

相关文章:

python - 如何转换 matplotlib ConnectionPatch,即用于 Cartopy 投影

python - 如何在生产和开发中以不同的方式静态配置 Celery 应用程序?

python - 使用 python 将字典或 JSON 文件列表导入 Elasticsearch

c - 2 dl-hack3-cond-1 抑制了 valgrind -v 显示的错误

c++ - 可移植比较和交换(原子操作)C/C++ 库?

c - 如何使用stm32f100板读写I2C eeprom

c - 在 mac OS X 上,gcc 在 C 中默认链接数学库?

c# - 用于编译的关键字 var 性能

python - 从 Python 访问 Tcl 函数的示例

Java:如何在编译时找到方法的调用者?