涉及工具和平台

  • Windows 7 x64
  • IIS
  • Python 3.4
  • Flask
  • pymysql
  • pandas

文件结构

python fastapi yml环境配置_虚拟环境

python fastapi yml环境配置_虚拟环境_02

python fastapi yml环境配置_python_03

安装python

 

安装 IIS,启用 CGI

在控制面板搜索“打开或关闭 Windows 功能”

python fastapi yml环境配置_python_04

安装 URL 重写组件

下载地址:https://www.microsoft.com/web/downloads/platform.aspx

python fastapi yml环境配置_python_05

下载完成后安装。

打开IIS管理器:

python fastapi yml环境配置_虚拟环境_06

双击,打开Web平台安装程序

python fastapi yml环境配置_虚拟环境_07

安装CGI(搜索CGI)和URL 重写组件(搜索URL)

python fastapi yml环境配置_IIS_08

python fastapi yml环境配置_虚拟环境_09

安装pip

下载pip

地址:https://pypi.org/project/pip/#files

python fastapi yml环境配置_IIS_10

解压下载的压缩包至工作目录下(如D:\),打开Windows cmd,运行如下命令进入解压后的pip目录:

cd /d D:\pip-18.1

使用如下命令进行安装:

python setup.py install

pip常用命令:

#安装包
pip install xxx
 
#升级包,可以使用-U 或者 --upgrade
pip install -U xxx
 
#卸载包
pip uninstall xxx
 
#列出已安装的包
pip list

安装virtualenv虚拟环境

pip install virtualenv

创建虚拟环境

cd /d D:\saintLocal
virtualenv venv8085

进入虚拟环境

# 进入虚拟环境文件
cd venv8085
# 进入相关的启动文件夹
cd Scripts

activate  # 启动虚拟环境

安装项目需要的模块

# pip freeze > requirements.txt #生成requirements.txt
pip install -r requirements.txt #安装requirements.txt依赖

安装wfastcgi(注:这里是全局安装,不是在虚拟环境安装。)

deactivate # 退出虚拟环境
pip install wfastcgi

在python3.6的安装目录:  Lib/site-packages文件夹下,找到: wfastcgi.py  这个文件。

python fastapi yml环境配置_python_11

把这个文件拷贝到你的项目根目录:

python fastapi yml环境配置_python_12

启用wfastcgi

cd到wfastcgi.py所在目录后执行(或者将目录路径添加到PATH)。

python fastapi yml环境配置_IIS_13

创建web.config 文件并置于上一级目录

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <!-- scriptProcessor 的值来自命令行工具 wfastcgi-enable -->
      <add name="FlaskFastCGI" path="*" verb="*" modules="FastCgiModule" scriptProcessor="e:\anaconda3\python.exe|e:\anaconda3\lib\site-packages\wfastcgi.py" resourceType="Unspecified" requireAccess="Script" />
    </handlers>
    <security> 
        <!-- URL 重写中的特殊字符,比如加号+等等 -->
        <requestFiltering allowDoubleEscaping="true"></requestFiltering> 
    </security> 
  </system.webServer>
 
  <appSettings>
    <!-- Required settings -->
    <!-- 在这里指定Falsk app在模块中的具体位置 -->
    <add key="WSGI_HANDLER" value="app.app" />
    <add key="PYTHONPATH" value="~\" />
 
    <!-- Optional settings -->
    <!-- 需要先创建日志目录,否则报错 -->
    <add key="WSGI_LOG" value="C:\logs\oboeqa_web.log" />
    <add key="WSGI_RESTART_FILE_REGEX" value="" />
  </appSettings>
</configuration>

配置 IIS 目录及权限

现在你需要让IIS用户拥有访问和执行你的网站脚本的权限,进入 D:\saintLocal目录:

cd D:\saintLocal

然后执行下面两条命令:

icacls . /grant "NT AUTHORITY\IUSR:(OI)(CI)(RX)"
icacls . /grant "Builtin\IIS_IUSRS:(OI)(CI)(RX)"

IIS添加应用

python fastapi yml环境配置_虚拟环境_14

在你的网站下面找到【处理程序映射】如图:双击打开:

python fastapi yml环境配置_虚拟环境_15

添加模块映射:  大家注意图片中标注的第2条。(D:\saintLocal\venv8085\Scripts\python.exe|e:\anaconda3\lib\site-packages\wfastcgi.py) 前面部分为虚拟环境路径,| 号后面是项目里的wfastcig.py路径。请求限制中把(映射下面的√去掉)。

python fastapi yml环境配置_IIS_16

确认添加模块

python fastapi yml环境配置_python_17

这个时候你应该可以看见你的FlaskFastCGI程序了

python fastapi yml环境配置_IIS_18

回到IIS控制台,进入【FastCGI设置】如图:

python fastapi yml环境配置_虚拟环境_19

双击打开你应该可以看见刚才添加的FastCGI:

python fastapi yml环境配置_IIS_20

双击,编辑 —【环境变量】

python fastapi yml环境配置_IIS_21

python fastapi yml环境配置_IIS_22

这里添加2个变量:

PYTHONPATH    值为:  项目路径:(如:D:\saintLocal\ZZ_8085)

WSGI_HANDLER  值为: 项目启动文件中的app,如图,因为我是通过app.py启动。

 

回收应用程序池,重启IIS

python fastapi yml环境配置_python_23