2017-05-18 1 views
0

Récemment nous voulons réécrire notre projet avec python3 (maintenant c'était py2.7). Nous utilisons principalement scrapy pour récupérer des données à partir du site Web, mais je ne peux pas installer scrapy dans py36 maintenant.comment installer scrapy witn py36 dans win10

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 

semble que le problème est twisted.I essayé d'installer torsadé a également obtenu les mêmes exception.Others m'a dit d'installer twisted.whl, mais je ne peux pas trouver ce fichier dans Internet. S'il vous plaît aider.

+0

Comment avez-vous créé votre environnement virtuel? – Granitosaurus

+0

Sur Windows, Scrapy docs [recommande d'utiliser Anaconda/Miniconda] (https://docs.scrapy.org/en/latest/intro/install.html#windows) avec le canal 'conda-forge'. –

+0

merci pour la réponse gentille. Maintenant c'est ok, j'installe twisted par whl file. – Guoliangcai

Répondre

1

De l'Installation Requirements de Twisted sur GitHub, il semble que ce n'est pas encore compatible avec Python 3.6:

Pour installer Twisted, vous avez besoin:

Python 2.7 (fonctionnalités) ou 3.3 /3.4/3.5 (sous-ensemble de fonctionnalités).

En effet, dans le Python 3.6 changelog, vous pouvez voir que:

PEP 528 et PEP 529, système de fichiers Windows et le codage de la console a changé en UTF-8.

Cela affecte la valeur retournée par sys.__stdout__.encoding, ce qui provoque l'UnicodeDecodeError que vous voyez dans la trace de la pile.

Je vous suggère donc de continuer à utiliser Python 3.5 jusqu'à la mise à jour Twisted pour prendre en charge Python 3.6. Si vous ne le pouvez pas, essayez en dernier recours de configurer votre projet dans un environnement non Windows (par exemple une machine virtuelle) ou contournez ce problème en définissant la variable d'environnement PYTHONIOENCODING sur sys.__stdout__.encoding avant la mise à niveau vers la version 3.6. Mais il a des inconvénients, cela peut ne pas fonctionner, et il pourrait y avoir d'autres incompatibilités sur la route de toute façon.

+0

merci pour la réponse gentille. Maintenant c'est ok, j'installe twisted par whl file. – Guoliangcai