.NET Core3.1部署本地IIS无法加载python311.dll,IIS Express正常
解决PythonNet在IIS发布后无法加载python311.dll的问题
给应用池授予Python目录权限
找到IIS对应应用的应用池,查看其运行身份(默认是ApplicationPoolIdentity),给这个身份开放Python安装目录(C:/Users/AppData/Local/Programs/Python/)的读取和执行权限。把PythonDLL路径改成绝对路径
原代码里仅写python311.dll,IIS环境无法定位文件,修改为完整绝对路径:Environment.SetEnvironmentVariable("PYTHONNET_PYDLL", "C:/Users/AppData/Local/Programs/Python/python311.dll", EnvironmentVariableTarget.Process); Runtime.PythonDLL = "C:/Users/AppData/Local/Programs/Python/python311.dll"; // 替换为绝对路径 PythonEngine.Initialize(); using (Py.GIL()) { // 业务代码逻辑 }将Python目录加入系统PATH并重启IIS
把C:/Users/AppData/Local/Programs/Python/添加到系统环境变量的PATH中,添加完成后执行iisreset命令重启IIS,确保环境变量生效。匹配Python和IIS的运行位数
如果安装的是32位Python,就在IIS应用池的高级设置里开启“启用32位应用程序”;如果是64位则保持关闭,确保两者位数一致。检查VC++运行库是否安装
Python 3.11依赖对应的Visual C++ Redistributable运行库,确认已安装与Python位数匹配的版本(x86或x64)。
内容的提问来源于stack exchange,提问作者Hamed Zahiri
相关产品推荐
相关产品推荐

