2

我正在使用 .net framework 4.5,但与 4.0 的结果相同:

如果我编写一个简单的控制台应用程序来初始化 python.net,它会按预期工作。如果我尝试从 winforms 应用程序执行相同的操作,我会收到“无法加载 DLL 'python27':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)”

如果我从 winforms 应用程序引用正常运行的控制台应用程序并调用初始化 python.net 的方法,则会发生同样的事情。构建设置是两个项目的默认设置。

我什至将 python27 直接放入可执行文件夹,但仍然发生相同的错误,所以我猜这可能是 32 位与 64 位的问题,即使两个项目都配置为任何 cpu。

4

2 回答 2

2

经过一番摸索,我发现了两件事:

将构建目标更改为 x86 解决了丢失的 DLL 错误,但是在调用 PythonEngine.Initialize() 时应用程序仍然神秘地崩溃了。我能够通过确保在执行任何其他代码之前进行初始化来解决这个问题。

于 2012-07-12T05:40:28.947 回答
0
  1. 我添加了对 python.runtime.dll 的引用(位于 xxx\Python36\Lib\site-packages)来解决 dll 加载问题。
  2. 我将构建目标更改为 x64 解决了我的 PythonEngine.Initialize() 问题。@Bicubic 通过改用 x86 解决了他的问题。所以你不能让c#目标是AnyCPU。尝试两者。
  3. 我将我的 xxx.py 移动到 xxx\Python36 文件夹以解决 py.import("xxx") 错误。

我现在可以玩得开心了 :) 希望你们好运,玩得开心!

于 2019-04-08T02:12:58.280 回答