【问题标题】:python37.dll not linked in executablepython37.dll 未在可执行文件中链接
【发布时间】:2020-04-17 03:27:03
【问题描述】:

我用 python 扩展了 c++,但可执行文件无法在没有安装 python 的系统上运行。

#include "C:\.....python.h"

int main()
{
    Py_Initialize();
    PyRun_SimpleString("print("hello world")\n")
Py_Finalize();
return 0;
}

当我在没有安装 python 的 Windows 系统上运行时,我收到以下错误:

The code execution cannot proceed because python37.dll was not found. Reinstalling the program may fix the problem.

如何将 python37.dll 链接到可执行文件。

【问题讨论】:

  • static linking vs dynamic linking。您正在动态链接;为了做你需要的,你需要静态链接python库(对于Windows,这意味着使用.lib,而不是.dll)。
  • 我已经包含了 python 库。 (python37.lib) 在 VC++ 目录下的“库目录”中。
  • 我不是 Windows 用户,但也许 this 可以提供帮助? VS 有很多选项,显然不是所有的.lib 文件都是一样的。
  • 您的程序缺少执行所需的部分。你的问题究竟是什么?错误很明显,补救措施似乎很明显,但你没有问任何问题。
  • 如何将 python37.dll 链接到可执行文件。乌尔里希·埃克哈特

标签: python c++ python-3.x visual-studio dll


【解决方案1】:

根据定义,DLL 是动态链接库,它是在运行时查找和解析的单独模块。

如果未安装 Python,您的应用程序将无法运行。

您需要将 Python 与您的应用程序捆绑在一起,或者在安装应用程序之前/期间安装 Python。

或者,您可以尝试使用 Python statically 链接,在这种情况下,它将成为可执行文件的一部分,无需单独安装。

【讨论】:

    【解决方案2】:

    确保您的 python 文件夹在您的 PATH 中,以便它可以找到有问题的 DLL。

    从命令行:

    c:\> set PATH=c:\python\python37;%PATH%
    c:\> cd /d c:\path\to\your\exe
    c:\path\to\you\exe> myprogram.exe
    

    有关如何找到和加载 DLL 的更多详细信息,请阅读Dynamic-Link Library Search Order page on MSDN

    【讨论】:

    • 所以基本上如果用户的windows系统没有安装python3.7就不会运行?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多