Django项目安装dependency-injector和pyduktape时VC++14已安装仍失败
Windows环境安装dependency-injector与pyduktape依赖VC++报错解决方案
问题根因
你要安装的dependency-injector==3.15.6和pyduktape==0.0.6均包含Cython编译的扩展模块,Windows环境下默认需要本地编译环境,即便已经安装Microsoft Visual C++ 14.0仍报错通常是以下几种情况:
- 安装的VC++生成工具缺少对应组件(例如未安装适配系统的Windows SDK)
- VC++工具的环境变量未正确注册,pip无法识别可用编译环境
- 指定版本的包没有适配当前Python 3.7的官方预编译wheel,pip默认触发本地编译流程
解决方案
方案1:安装预编译wheel包(优先推荐)
无需配置编译环境,直接获取对应版本的预编译whl文件安装即可:
- 从报错路径中的
lib.win-amd64-3.7可确认当前环境为Python 3.7 64位,需下载匹配该环境的两个包的whl文件:dependency-injector-3.15.6-cp37-cp37m-win_amd64.whlpyduktape-0.0.6-cp37-cp37m-win_amd64.whl
安装的whl包版本必须和你的Python版本、系统架构严格匹配,否则会提示不支持当前平台
- 切换到whl文件所在目录,执行安装命令:
pip install dependency-injector-3.15.6-cp37-cp37m-win_amd64.whl pip install pyduktape-0.0.6-cp37-cp37m-win_amd64.whl
- 两个包安装完成后,再执行
pip install -r requirements.txt即可跳过这两个包的编译流程,完成剩余依赖安装。
方案2:修复VC++编译环境
如果需要本地编译,按以下步骤调整:
- 打开Visual Studio Installer,修改已安装的「桌面使用C++开发」工作负载,勾选对应版本的Windows SDK、MSVC v142及以上版本生成工具
- 安装完成后打开对应版本的「x64 Native Tools Command Prompt for VS」终端,在该终端内执行
pip install -r requirements.txt
方案3:调整依赖版本适配
如果项目允许修改依赖版本,可升级包到自带预编译wheel的版本,无需本地编译:
- dependency-injector升级到4.x以上版本,官方已提供Windows下Python 3.7的预编译wheel
- pyduktape可替换为维护更活跃的兼容fork版本,免除编译依赖
内容的提问来源于stack exchange,提问作者yasiru hasaranjala
相关产品推荐
相关产品推荐

