在.NET 6中使用Pythonnet嵌入32位Python 3.6.5时遇异常求助
解决.NET 6.0嵌入32位Python 3.6.5的加载异常问题
强制项目以32位运行
打开项目属性的「生成」标签页,将「平台目标」改为x86,取消勾选「首选32位」(若存在)后重新编译。这是解决「%1不是有效的Win32应用程序」的核心——64位进程无法加载32位DLL,必须保证.NET进程和Python的位数完全匹配。确保python36.dll可被正确找到
- 把32位Python安装目录(如
C:\Python36-32)下的python36.dll复制到.NET项目的输出目录(如bin/Debug/net6.0); - 或者将32位Python的安装目录添加到系统
Path环境变量中,注意不要同时保留64位Python的路径,避免冲突。
- 把32位Python安装目录(如
验证Python环境配置
确认安装的是纯32位Python 3.6.5:打开Python命令行,窗口标题会显示「(32-bit)」;同时确保依赖库都是32位版本,避免后续调用时出错。优化初始化代码(可选)
如果DLL不在默认路径,可直接指定绝对路径,还可以提前设置Python环境变量:public PyScripts() { Environment.SetEnvironmentVariable("PYTHONHOME", @"C:\Python36-32"); Environment.SetEnvironmentVariable("PYTHONPATH", @"C:\Python36-32\Lib;C:\Python36-32\Lib\site-packages"); Runtime.PythonDLL = @"C:\Python36-32\python36.dll"; PythonEngine.Initialize(); }
内容的提问来源于stack exchange,提问作者Shaunl322
相关产品推荐
相关产品推荐

