安装Fastapi依赖时报错OSError: [WinError 2] 系统找不到指定文件如何解决
FastAPI全量依赖安装报错解决方案
问题复现
执行pip install Fastapi[all]命令安装FastAPI全量框架依赖,安装包全部下载完成后,安装阶段抛出如下错误:
Using legacy 'setup.py install' for python-multipart, since package 'wheel' is not installed. WARNING: Ignoring invalid distribution -ip (c:\\python39\\lib\\site-packages) WARNING: Ignoring invalid distribution - (c:\\python39\\lib\\site-packages) Installing collected packages: sniffio, idna, colorama, typing-extensions, h11, click, anyio, websockets, watchgod, uvicorn, urllib3, starlette, six, pyyaml, python-dotenv, pydantic, MarkupSafe, httptools, dnspython, charset-normalizer, certifi, ujson, requests, python-multipart, orjson, jinja2, itsdangerous, fastapi, email-validator WARNING: Failed to write executable - trying to use .deleteme logic ERROR: Could not install packages due to an OSError: [WinError 2] The system cannot find the file specified: 'c:\\python39\\Scripts\\watchgod.exe' -> 'c:\\python39\\Scripts\\watchgod.exe.deleteme' WARNING: Ignoring invalid distribution -ip (c:\\python39\\lib\\site-packages) WARNING: Ignoring invalid distribution - (c:\\python39\\lib\\site-packages) WARNING: Ignoring invalid distribution -ip (c:\\python39\\lib\\site-packages) WARNING: Ignoring invalid distribution - (c:\\python39\\lib\\site-packages)
运行环境
- Python版本:Python 3.10.0
- pip版本:pip 21.3 来自c:\python39\lib\site-packages\pip (python 3.9)
错误原因
- 权限不足:Windows系统当前终端无Python安装目录的写入权限,无法重命名Scripts目录下的可执行文件,触发watchgod.exe写入失败报错
- 环境版本不匹配:本地同时存在Python3.9和Python3.10两个版本,当前调用的pip对应Python3.9,和实际使用的Python3.10环境不一致,出现路径冲突
- 存在破损依赖:site-packages目录下有安装中断产生的无效破损包,干扰安装流程
- 缺少wheel依赖:部分包只能用旧版setup.py方式安装,兼容问题多
解决步骤
- 以管理员身份运行终端(命令提示符/PowerShell),获取Python目录写入权限
- 统一Python与pip调用版本,执行以下命令确认版本匹配:
确认输出的pip信息对应Python3.10后,后续所有pip操作均使用py -3.10 -m pip --versionpy -3.10 -m pip install 包名格式执行,避免版本调用混乱 - 清理破损依赖包:进入
c:\python39\lib\site-packages目录,手动删除所有名称以~开头的破损包文件夹 - 先安装wheel依赖,再安装FastAPI全量包:
py -3.10 -m pip install wheel py -3.10 -m pip install fastapi[all] - 可选隔离安装方案:如果全局环境冲突过多,使用虚拟环境安装:
# 创建虚拟环境 py -3.10 -m venv fastapi-env # PowerShell环境激活虚拟环境 .\fastapi-env\Scripts\Activate.ps1 # CMD环境激活虚拟环境 fastapi-env\Scripts\activate.bat # 激活后安装依赖 pip install wheel pip install fastapi[all]
内容的提问来源于stack exchange,提问作者Obinna Okeke
相关产品推荐
相关产品推荐

