初始化Python.Runtime.dll失败

问题描述 投票:0回答:1

我正在尝试从 python 调用 c# 函数。我使用的代码如下:

def solve_it(input_data):
    assignment1Object = Assignment1()
    return assignment1Object.Assignment1Solution()

from pythonnet import load
load('netfx')
import clr
clr.AddReference('path/to/dll/DiscreteOptimizationSolutions.dll')
from DiscreteOptimizationSolutions import Assignment1
result = solve_it()
print('This script submits the integer: %s\n' % solve_it(''))

但它会抛出错误:

RuntimeError: Failed to initialize Python.Runtime.dll
Failed to initialize pythonnet: 
System.InvalidOperationException: This property must be set before runtime is initialized
at Python.Runtime.Runtime.set_PythonDLL(String value)
at Python.Runtime.Loader.Initialize(IntPtr data, Int32 size)
at Python.Runtime.Runtime.set_PythonDLL(String value)
at Python.Runtime.Loader.Initialize(IntPtr data, Int32 size)

我在 Anaconda 上使用 python 版本 3.10.9 和 pythonnet 3.0.1

python-3.x python.net
1个回答
0
投票

如果我们将虚拟环境文件从一个系统复制到另一个系统,就会出现此问题。要解决此问题,请转到虚拟环境目录 > lib > site-packages 并打开 Python.Runtime.dll 文件的属性。

在“常规”选项卡中,会有“取消阻止”复选框。 选中此复选框并单击“确定”以关闭属性弹出窗口。 再次运行 python 代码以查看其工作情况!

© www.soinside.com 2019 - 2024. All rights reserved.