如何配置FastCGI服务访问site-packages下的wfastcgi.py文件
解决FastCGI指定site-packages中wfastcgi.py路径的问题
这个报错的核心原因很明确:你只在站点的web.config里指定了路径,但IIS的FastCGI模块需要先在服务器级别的全局配置中注册Python与wfastcgi的组合,才能在站点配置里正常引用。下面是具体的解决步骤:
1. 先把site-packages里的wfastcgi注册到IIS全局FastCGI配置
打开管理员权限的命令提示符,运行以下命令(记得把路径替换成你实际的Python安装路径):
%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI /+[fullPath='C:\Python39\python.exe', arguments='C:\Python39\Lib\site-packages\wfastcgi\wfastcgi.py', maxInstances=1]
maxInstances=1刚好匹配你需要的单进程处理请求的需求- 如果你的Python安装路径包含空格(比如
C:\Program Files\Python39),要给路径加上双引号:%windir%\system32\inetsrv\appcmd set config /section:system.webServer/fastCGI /+[fullPath='"C:\Program Files\Python39\python.exe"', arguments='"C:\Program Files\Python39\Lib\site-packages\wfastcgi\wfastcgi.py"', maxInstances=1]
执行完命令后,你可以打开IIS管理器,在服务器节点下找到FastCGI设置,确认已经出现你刚添加的条目,路径要完全一致。
2. 配置站点的web.config
在你的站点web.config中,更新<handlers>节点的scriptProcessor值,要和刚才注册的fullPath+arguments完全对应,用竖线|分隔:
<configuration> <system.webServer> <handlers> <add name="PythonFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="C:\Python39\python.exe|C:\Python39\Lib\site-packages\wfastcgi\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" /> </handlers> </system.webServer> </configuration>
如果路径包含空格,同样要保留引号:
scriptProcessor='"C:\Program Files\Python39\python.exe"|"C:\Program Files\Python39\Lib\site-packages\wfastcgi\wfastcgi.py"'
3. 验证配置
重启你的IIS站点(或者直接重启IIS服务),然后访问站点测试。如果还是有问题,可以快速排查:
- 再次确认IIS应用池的身份账号对Python目录和site-packages目录有读取权限(你提到无权限问题,但可以快速扫一眼)
- 查看事件查看器中的IIS相关日志,里面会有更详细的错误信息帮你定位问题
内容的提问来源于stack exchange,提问作者u1234
相关产品推荐
相关产品推荐

