You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用C#函数报错:Failed to initialize Python.Runtime.dll

解决Python调用C# DLL时的Runtime初始化错误

错误原因

Anaconda环境里Python的DLL路径和pythonnet默认查找路径不匹配,再加上代码初始化顺序错了——PythonDLL属性必须在pythonnet运行时启动前设置,但原代码先定义了函数才加载pythonnet,导致初始化时机不对,触发报错。

修正步骤与代码

  1. 先指定PythonDLL路径:找到你Anaconda环境里的python310.dll(对应Python3.10版本),把路径写对
  2. 调整初始化顺序:先搞定pythonnet的加载和clr导入,再写调用C#函数的逻辑
  3. 修正函数调用参数:保证solve_it的调用参数和定义一致

修正后的代码:

# 替换成你自己的Anaconda环境路径
import sys
sys.path.append(r"C:\ProgramData\Anaconda3\envs\你的环境名称")
import Python.Runtime
Python.Runtime.PythonDLL = r"C:\ProgramData\Anaconda3\envs\你的环境名称\python310.dll"

# 加载pythonnet并导入clr
from pythonnet import load
load('netfx')
import clr
# 替换成你的DLL实际路径,建议用绝对路径
clr.AddReference(r'path/to/dll/DiscreteOptimizationSolutions.dll')
from DiscreteOptimizationSolutions import Assignment1

# 定义调用C#的函数
def solve_it(input_data):
    assignment1Object = Assignment1()
    return assignment1Object.Assignment1Solution()

# 调用函数(按需传入input_data参数)
result = solve_it('')
print('This script submits the integer: %s\n' % result)

额外注意点

  • 确认Anaconda环境路径和Python DLL文件名对应(Python3.10就是python310.dll)
  • 保证DiscreteOptimizationSolutions.dll的路径正确,要么用绝对路径,要么把DLL所在目录加到系统环境变量里
  • 如果还是报错,检查Python和C# DLL的架构是否一致(都是32位或都是64位),或者尝试用管理员身份运行脚本

内容的提问来源于stack exchange,提问作者Curious Iitian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 12:24:57