如何在IIS服务器上配置基于Conda基础环境的Flask REST API部署?
解决IIS部署Flask ML API时无法调用Conda基础环境依赖的问题
我之前部署Flask机器学习接口时也踩过一模一样的坑!问题根源就是IIS的FastCGI默认调用的是系统自带Python(或非Conda环境的Python),而非Anaconda的基础环境,所以找不到pandas这类数据科学库。下面是具体的配置修改步骤:
1. 先确认Conda基础环境的有效性
打开命令提示符,直接输入你的Conda基础环境Python路径(比如全局安装的路径是C:\ProgramData\Anaconda3\python.exe,用户级安装则是C:\Users\你的用户名\anaconda3\python.exe),进入Python交互环境后输入import pandas,确认能正常导入——这一步是先排除环境本身的问题。
2. 修改IIS的FastCGI处理程序映射
- 打开IIS管理器,定位到你的Flask网站项目
- 点击右侧的处理程序映射,找到你之前配置的Flask相关映射(比如后缀为
.fcgi或指向wsgi脚本的映射) - 双击该映射,在弹出的「编辑模块映射」窗口中,把可执行文件的路径替换成你的Conda基础环境Python.exe路径,格式为:
举个实际例子:C:\你的Conda完整路径\python.exe|C:\你的网站根目录\你的wsgi脚本.pyC:\ProgramData\Anaconda3\python.exe|C:\inetpub\wwwroot\ML_API\wsgi.py
3. 给FastCGI添加Conda环境变量(关键步骤)
Conda环境的依赖库路径需要被FastCGI识别,不然即使指定了Python路径,还是会找不到pandas:
- 在IIS管理器左侧点击服务器名称(最顶部的节点),找到FastCGI设置
- 在列表中找到你刚才修改的那条记录,右键选择编辑
- 在「编辑FastCGI应用程序」窗口中,点击环境变量旁的「...」按钮
- 添加以下环境变量(根据你的Conda路径调整):
- 变量名:
PATH,变量值:C:\你的Conda路径;C:\你的Conda路径\Scripts;C:\你的Conda路径\Library\bin;%PATH% - 变量名:
PYTHONHOME,变量值:C:\你的Conda路径 - 变量名:
PYTHONPATH,变量值:C:\你的Conda路径\Lib;C:\你的Conda路径\Lib\site-packages
- 变量名:
4. 重启IIS服务生效
按下Win+R输入iisreset,重启IIS让所有配置生效,之后再访问你的API应该就能正常导入pandas了。
如果还是有问题,可以在wsgi脚本开头手动添加Conda包路径:
import sys sys.path.insert(0, 'C:\你的Conda路径\Lib\site-packages')
不过一般前几步就足够解决问题了。
内容的提问来源于stack exchange,提问作者Avijit Das
相关产品推荐
相关产品推荐

