使用pip安装Scrapy时出现安装错误的技术咨询
解决Scrapy安装时Twisted编译失败的问题
这个问题我遇到过好多次了——本质是安装Scrapy的依赖库Twisted时,需要编译C语言扩展,但你的系统里要么缺少对应的C编译环境,要么环境配置没到位,导致cl.exe(微软的C/C编译器)运行失败。
先帮你把错误信息整理出来:
error: command 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe' failed with exit status 2 ---------------------------------------- ERROR: Command errored out with exit status 1: 'c:\users\paran\appdata\local\programs\python\python38\python.exe' -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\Users\paran\AppData\Local\Temp\pip-install-sa3_a6ft\Twisted\setup.py'"'"'; __file__='"'"'C:\Users\paran\AppData\Local\Temp\pip-install-sa3_a6ft\Twisted\setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\paran\AppData\Local\Temp\pip-record-egqr0bb7\install-record.txt' --single-version-externally-managed --compile --install-headers 'c:\users\paran\appdata\local\programs\python\python38\Include\Twisted'
给你三个解决方案,按省心程度排序:
1. 直接用预编译的Wheel包(最快捷,不用折腾编译)
Windows下很多Python库都有预编译好的二进制包(.whl格式),完全跳过源码编译步骤:
- 先升级pip和wheel工具:
python -m pip install --upgrade pip wheel - 强制用二进制包安装Scrapy:
如果上面的命令还是卡壳,就单独先装Twisted的wheel:pip install --only-binary :all: scrapy- 找对应你Python3.8、系统64位(
win_amd64)的Twisted wheel包 - 下载后用pip安装这个本地文件:
pip install 你下载的Twisted文件名.whl - 再正常安装Scrapy就行:
pip install scrapy
- 找对应你Python3.8、系统64位(
2. 安装匹配的Visual Studio编译工具
你的Python3.8是用MSVC 14.0(对应Visual Studio 2015)编译的,所以需要对应版本的编译工具链:
- 下载打开Visual Studio Installer(没有的话去微软官网下)
- 在「工作负载」里勾选**「使用C++的桌面开发」**
- 右侧「单个组件」里一定要选**「MSVC v140 - VS 2015 C++生成工具(v14.00)」**
- 安装完成后重启命令行,再试
pip install scrapy
3. 用开发者命令提示符运行安装(如果已经装了编译工具还是报错)
如果你已经装了VS2015的编译工具,但环境变量没自动配置好:
- 打开开始菜单,搜「VS2015 x64 本机工具命令提示符」
- 在这个窗口里直接执行
pip install scrapy——这个提示符会自动帮你配置好编译所需的所有环境变量
内容的提问来源于stack exchange,提问作者Paranjyoti Lahkar




