2017-05-18 69 views
0

最近我们想用python3(现在是py2.7)重写我们的项目。我们主要使用scrapy从网站抓取数据,但我现在无法在py36中安装scrapy。如何在win10中安装scrapy和py36

Running setup.py install for Twisted ... error 
Exception: 
Traceback (most recent call last): 
    File "e:\python_envs\crawler36\lib\site-packages\pip\compat\__init__.py", line 73, in console_to_str 
    return s.decode(sys.__stdout__.encoding) 
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 24: invalid continuation byte 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "e:\python_envs\crawler36\lib\site-packages\pip\basecommand.py", line 215, in main 
    status = self.run(options, args) 
    File "e:\python_envs\crawler36\lib\site-packages\pip\commands\install.py", line 342, in run 
    prefix=options.prefix_path, 
    File "e:\python_envs\crawler36\lib\site-packages\pip\req\req_set.py", line 784, in install 
    **kwargs 
    File "e:\python_envs\crawler36\lib\site-packages\pip\req\req_install.py", line 878, in install 
    spinner=spinner, 
    File "e:\python_envs\crawler36\lib\site-packages\pip\utils\__init__.py", line 676, in call_subprocess 
    line = console_to_str(proc.stdout.readline()) 
    File "e:\python_envs\crawler36\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 0xd5 in position 24: invalid continuation byte 

看来问题twisted.I试图安装扭曲也得到了相同的exception.Others告诉我安装twis​​ted.whl,但我无法找到互联网这个文件。 请帮忙。

+0

你是如何创建你的虚拟环境的? – Granitosaurus

+0

在Windows上,Scrapy文档[推荐使用Anaconda/Miniconda](https://docs.scrapy.org/en/latest/intro/install.html#windows)和'conda-forge'频道。 –

+0

感谢亲切的回应。现在好了,我安装whl文件扭曲。 – Guoliangcai

回答

1

从扭曲的GitHub上的Installation Requirements, 它看起来还没有与Python 3.6兼容:

要安装扭曲的,你需要:

Python 2.7版(全功能)或3.3 /3.4/3.5(功能子集)。

事实上,在Python 3.6 changelog,你可以看到:

PEP 528和PEP 529中,Windows文件系统和控制台编码改为UTF-8。

这会影响sys.__stdout__.encoding返回的值,这会导致您在堆栈跟踪中看到的UnicodeDecodeError

所以我建议你继续使用Python 3.5,直到Twisted更新来支持Python 3.6。如果您确实无法做到,请尝试在非Windows环境(例如虚拟机)中设置您的项目,或者通过将PYTHONIOENCODING环境变量设置为sys.__stdout__.encoding用于在升级到3.6之前返回的任何内容来解决此问题。但它有缺点,它可能行不通,而且无论如何可能还有其他不兼容的问题。

+0

感谢亲切的回应。现在好了,我安装了whl文件。 – Guoliangcai