提升 Python 找不到 dll 文件

Boost Python not finding dll file

本文关键字:文件 dll 找不到 Python 提升      更新时间:2023-10-16

在尝试在Visual Studio上安装Boost Python时,我得到的结果很少。我能够创建Boost.Python库和boost_python...还创建了lib文件,这花了我很长时间才弄清楚如何实现这一目标。

但是,现在在Visual Studio中,将包含和库路径添加到链接器后,我无法使小型测试程序正常工作。

尝试运行以下代码行时:

Py_Initialize();
using namespace boost::python;
object main_module((handle<>(borrowed(PyImport_AddModule("__main__")))));

我收到以下错误

程序无法启动,因为缺少boost_python-vc141-1_65.dll

当我在库所在的 boost 文件夹中查看时(在舞台文件夹中(,我可以清楚地看到这个文件,并且我已经将程序链接到这个文件夹。

我已经尝试了各种不同的Boost版本。

最新的稳定版本因此 1.64 与 beta 1.65 具有相同的问题。对于以前的版本1.61,我甚至无法构建Boost.Python。

我还尝试了不同的 Python 版本,3.6 和现在的 2.7。我已经卸载了所有其他版本的 Python,因此 2.7 版本是唯一的版本。我还确保在系统变量中设置了 PYTHONHOME 和 PYTHONPATH。 ? 我是否错过了一些重要的东西来让这个 Boost Python 库工作?如果需要任何其他信息,请询问,我会添加它,但由于我不熟悉 boost 和链接,我不确定哪些信息是相关的。

在Windows上没有/usr/shared目录,所以boost构建脚本不能为每个人安装dll库。所以你应该自己做这项工作。

您的 dll 文件必须与 exe 文件位于同一目录中。编译 boost 时,它会在 boost 输出 dir 中创建 dll 库(搜索此文件(。因此,您必须通过自定义构建步骤或其他方式将此 *.dll 文件复制到输出目录C++(编译器/链接器在其中创建 *.exe(。

如果启用了安全搜索模式,则搜索顺序如下:

  • 从中加载应用程序的目录。
  • 系统目录。使用 GetSystemDirectory 函数获取此目录的路径。
  • 16 位系统目录。没有函数可以获取此目录的路径,但会对其进行搜索。
  • 窗口目录。使用 GetWindowsDirectory 函数获取此目录的路径。
  • 当前目录。
  • PATH 环境变量中列出的目录。请注意,这不包括每个应用程序的路径 由"应用路径"注册表项指定。"应用路径"键不是 在计算 DLL 搜索路径时使用。

如果禁用了 SafeDllSearchMode,则搜索顺序如下:

  • 从中加载应用程序的目录。
  • 当前目录。
  • 系统目录。使用 GetSystemDirectory 函数获取此目录的路径。
  • 16 位系统目录。没有函数可以获取此目录的路径,但会对其进行搜索。
  • 窗口目录。使用 GetWindowsDirectory 函数获取此目录的路径。
  • PATH 环境变量中列出的目录。请注意,这不包括由
  • 应用程序路径注册表项。应用路径键在以下情况下不使用 计算 DLL 搜索路径。

取自这里