FastAPI是当前基于Python的服务器端异步Web框架中最牛气的一个。Uvicorn 是基于 uvloop 和 httptools 构建的非常快速的 ASGI 服务器。官网上说,uvloop 用于替换标准库 asyncio 中的事件循环,使用 Cython 实现,它非常快,可以使 asyncio 的速度提高 2-4 倍。
但是,目前uvloop仅能安装于ux平台上,不支持Windows平台安装(目前还是使用asyncio库)。
由于不清楚这一点,我在安装一个github上的源码示例对应的依赖项时出现下述错误(我的开发测试机是Windows 7 64bits):
分析
但是,安装最新版本的FastAPI是没有问题的。然后再安装异步服务器Uvicorn也是没有问题的。命令如下:
pip install uvicorn
这就怪了,uvicorn官网上明明显示它依赖于uvloop:
在通过uvloop及网络上有关介绍了解到,这个库出现的缘由后,首先搜索uvicorn在本机上的安装位置,这个容易,使用如下命令:
pip show uvicorn
显示如下:
然后,分析site-packages\uvicorn包下文件内容,发现只有大量的如下命令引用:
import asyncio
而不是:
import uvloop
显而易见,在安装uvicorn时系统在测试出WINDOWS安装平台后自动安装了这个稍稍落后一些的asyncio。但是,不用测试,应该不难推断出:在-ux平台上安装的肯定是最新推荐的uvloop。
而值得欣慰的是,一般软件的最终部署平台肯定是-ux,所以,在目前的Windows平台上进行服务器端开发测试其中就没有问题了。