【问题标题】:Converting Python into C and then compiling into an exe with Cython将 Python 转换成 C,然后用 Cython 编译成 exe
【发布时间】:2014-10-09 18:33:49
【问题描述】:

我已经在 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 丢失的输出,但事实并非如此,我在 Google 上搜索了这个主题,但一无所获。

还有这个:

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 运行时库。”

我该怎么办?

【问题讨论】:

  • 如果 .dll 不在您的 $SYSTEM$ 位置或本地目录中(即,它对命令可见),那么它将被视为丢失。注意,Win 7 32 位系统是 syswow64,64 位系统是 system32。 (详见下文)

标签: python c compilation cython


【解决方案1】:

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

如果使用 Windows 7(您未指明),请遵循以下位置:

From Here

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

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

【讨论】:

    【解决方案2】:

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

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

    对于另一个答复,这是真的。我只需要将 DDL 移动到我已经 CD 的文件夹中。

    【讨论】:

    • 虽然,我还是有问题。当我打开程序时,我得到这个:prntscr.com/4ull6p“一个应用程序试图错误地加载 C 运行时库。”
    猜你喜欢
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    相关资源
    最近更新 更多