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

时间:2014-10-09 18:33:50

标签: 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

我甚至不明白。我尝试将其中的所有内容更改为正确的内容,但我遇到了问题,一个是当我尝试编译它时说我的源文件不存在,另一个是它不是一个有效的名称因此它将跳过sourcefile参数。

那么有人可以为我提供另一种行动方案或者为我打破这些行为吗?或者将它们固定在错误所在的地方?

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

虽然,我还有一个问题。当我打开程序时,我得到了这个:prntscr.com/4ull6p“应用程序试图错误地加载C运行时库。”

我该怎么办?

2 个答案:

答案 0 :(得分:2)

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

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

enter image description here

From Here

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

一些实现包括工具。比如这个让你的路径变量变得容易:numpy.get_include()。请参阅其他示例 From Here

答案 1 :(得分:0)

我在cl.exe中发现了自己的错误。

我所做的是打开visualstudio cli,然后从那里运行cl.exe,但我需要进入源文件所在的文件夹。

对于其他回复,这是真的。我只需要将DDL移动到我已经CD的文件夹中。