安装scrapy模块时遇到的问题及解决方法

由于自己电脑中的根目录有中文,导致很多模块安装存在问题,自己也上网查了一些方法做了调试,但最简单的安装模块的方法,便是下载好相应的文件,直接进行安装,具体的步骤如下:

1 这里我想要安装twisted模块,于是pip install twisted,很遗憾的是安装失败,后来看网上说的方法,应该适合py.2x的方法

我也试了一下

import sys

reload(sys)

sys.setdefaultencoding('gbk'),可是依然无用

2后来查到要更改__init__文件,也尝试过

编码问题。Python 3.x 默认utf_8,windows下显示依然是gbk。

改一下...\lib\site-packages\pip\compat\__init__.py

return s.decode('utf_8') 改为return s.decode('cp936')

立马解决。

3 我最后写下我自己解决这个问题的方法,是直接下载了twisted的whl文件,然后直接pip 安装

安装scrapy模块时遇到的问题及解决方法


具体方法是将下载的文件放在\Python36\Scripts文件夹下,这个文件夹先找下,看你的电脑具体放在哪,然后cmd进控制台,cd 到\Python36\Scripts,

接着输入pip install Twisted-18.4.0-cp36-cp36m-win_amd64.whl,这里就安装好了,这个方法是一个通用的方法,我自己已经记载过2次了,这个方法,很实用。

4 (看到的一个方法)或许还有一个解决方法是修改自己的__init__方法,这个应该主要是针对py.3x的,我猜的,因为我自己用的3的版本,而且方法1的时候对我的问题对没有解决,瞎说的话,而且对2的不是很了解,好了,扯远了,直接说明原因。

Traceback (most recent call last):
  File "d:\program files (x86)\python\python36\lib\site-packages\pip\basecommand.py", line 215, in main
    status = self.run(options, args)
  File "d:\program files (x86)\python\python36\lib\site-packages\pip\commands\install.py", line 342, in run
    prefix=options.prefix_path,
  File "d:\program files (x86)\python\python36\lib\site-packages\pip\req\req_set.py", line 784, in install
    **kwargs
  File "d:\program files (x86)\python\python36\lib\site-packages\pip\req\req_install.py", line 878, in install
    spinner=spinner,
  File "d:\program files (x86)\python\python36\lib\site-packages\pip\utils\__init__.py", line 676, in call_subprocess
    line = console_to_str(proc.stdout.readline())
  File "d:\program files (x86)\python\python36\lib\site-packages\pip\compat\__init__.py", line 75, in console_to_str
    return s.decode('utf_8')

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 3: invalid continuation byte

从这里,我们看到错误定位于这里,打开__init__

安装scrapy模块时遇到的问题及解决方法

修改方法:把73行的sys.__stdout__.encoding改为‘gbk’ 

好了,总结了上述4种方法,希望会对您解决这个问题有用,其中方法三是我自己使用的,方法1,2,4我都是借鉴了网上的核心思想。