尝试运行已编译的 Cython 代码时出现“python39.dll not found”错误 [重复]

Posted

技术标签:

【中文标题】尝试运行已编译的 Cython 代码时出现“python39.dll not found”错误 [重复]【英文标题】:“python39.dll not found” error when trying to run compiled Cython code [duplicate] 【发布时间】:2021-06-15 15:55:40 【问题描述】:

版主: this 问题对我没有帮助,所以请不要将此标记为重复,谢谢:)


我终于将 cython c 代码编译成可执行文件,没有任何错误,但我无法在没有安装 python 的任何机器上运行它。

为了生成和编译代码,我使用了cython 和gcc compiler。 我的操作系统是 windows 10

另外,我需要制作一个可移植的 exe,而不是安装程序或自解压存档。

我不确定我是否提供了足够的信息,如果您需要知道任何事情,请在 cmets 中问我:P

我找不到任何可以解决这个问题的方法,所以我非常感谢任何帮助:)


为了创建 Cython C 代码,我使用了这个命令:

cython -3 --embed main.py

为了编译生成的代码,我使用了这个命令:

gcc main.c --static -I "C:\Program Files\Python39\include" -L "C:\Program Files\Python39\libs" -lpython39 -municode -o main.exe

这是我收到的错误消息(在没有 python 的机器上):

谢谢:)

【问题讨论】:

“版主:这个问题对我没有帮助,所以请不要将此标记为重复,谢谢:)”。只是让您知道版主不是唯一将问题标记为重复的人:)。 哦,好的,谢谢你告诉我:) 我认为答案可能是“Cython 并不是真正的工具,请改用 PyInstaller 或类似工具” 你不应该删除旧的(***.com/q/67987279/5769463),而是编辑它并解释为什么它不是重复的。 “这对我没有帮助”不是解释。显然你至少需要分发 libpython-dll。完成后,您将看到重复的所有其他内容也是必需的。 如果你想静态链接到 libpython,你也不应该这样做:***.com/q/62492622/5769463 【参考方案1】:

也许您需要将它添加到您的环境变量中?

【讨论】:

我可能忘了澄清它只在安装了 python 的机器上运行(或与 exe 在同一文件夹中的 python39.dll),我的目标是制作一个可移植的 exe,所以我不必须安装 python 才能运行它。所以这不是问题所在。无论如何谢谢:)

以上是关于尝试运行已编译的 Cython 代码时出现“python39.dll not found”错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 Cython 中使用 move 方法时出现编译错误

编译动态矩阵时出现file.exe错误

将 C 库与 Cython 一起使用时出现错误

在mac中运行CGAL代码时出现编译错误

程序运行时出现LC.exe 已退出,代码为-1,怎么办?

获取“结果已过期,如果需要,请重新运行查询。”在 Hive 中运行代码时出现错误消息