Command "c:\users\administrator\appdata\local\programs\python\python37\python.ex
e -u -c "import setuptools, tokenize;__file__='C:\\Users\\ADMINI~1\\AppData\\Loc
al\\Temp\\pip-install-vh60hcon\\Twisted\\setup.py';f=getattr(tokenize, 'open', o
pen)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code,
__file__, 'exec'))" install --record C:\Users\ADMINI~1\AppData\Local\Temp\pip-re
cord-qdvf1b6y\install-record.txt --single-version-externally-managed --compile"
failed with error code 1 in C:\Users\ADMINI~1\AppData\Local\Temp\pip-install-vh6
0hcon\Twisted\
关键词是:failed with error code 1
可能的原因:
- pip版本过低
- 未安装wheel模块。虽说wheel模块在安装scrapy时应该会被自动安装。
- 要安装的模块不支持当前python版本。这个问题在python3上尤为明显。(scrapy就是不能完美支持3)
- 电脑的名称含有中文或其他稀奇古怪的非字母、数字的字符。
- 电脑虚拟内存不足。这条有点扯,但是我百度的时候还有不少人提到这一点,也不知道是不是转载的同一人的结论。
要解决它,最简单的莫过于别用Windows了,用Linux去。当然,也Windows下的python3也不是不能用这些第三方模块,只不过需要自己手动安装这些模块,而不要使用pip了。缺点是,很多情况下搞不清包与包之间的依赖,经常会漏包。
对于winx下python3.6安装scrapy,我又仔细看了看错误代码,确定是安装twisted时出了问题。经过网上搜索,找到了一个解决方案(转自http://blog.csdn.net/nima1994):
首先从http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 下载twisted对应版本的whl文件(如我的Twisted‑17.5.0‑cp36‑cp36m‑win_amd64.whl),cp后面是Python版本,amd64代表64位,运行命令:
pip install D:\TDownloads\Twisted-17.5.0-cp36-cp36m-win_amd64.whl
其中install后面为完整路径名
安装完成后,再次运行:
pip install Scrapy
即可成功。