2014-06-21 14 views
7

Quindi tra i molti pacchetti che gli utenti devono installare per Scrapy, penso di avere problemi con pyOpenSSL.Installare le dipendenze del pacchetto per Scrapy

Quando cerco di ottenere un progetto Scrapy esercitazione creato, ottengo questo output seguente:

Traceback (most recent call last): 
    File "C:\Python27\lib\runpy.py", line 162, in _run_module_as_main 
    "__main__", fname, loader, pkg_name) 
    File "C:\Python27\lib\runpy.py", line 72, in _run_code 
    exec code in run_globals 
    File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 168, in <module> 
    execute() 
    File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 122, in execute 
    cmds = _get_commands_dict(settings, inproject) 
    File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 46, in _get_comma 
nds_dict 
    cmds = _get_commands_from_module('scrapy.commands', inproject) 
    File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 29, in _get_comma 
nds_from_module 
    for cmd in _iter_command_classes(module): 
    File "C:\Python27\lib\site-packages\scrapy\cmdline.py", line 20, in _iter_comm 
and_classes 
    for module in walk_modules(module_name): 
    File "C:\Python27\lib\site-packages\scrapy\utils\misc.py", line 68, in walk_mo 
dules 
    submod = import_module(fullpath) 
    File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module 
    __import__(name) 
    File "C:\Python27\lib\site-packages\scrapy\commands\bench.py", line 3, in <mod 
ule> 
    from scrapy.tests.mockserver import MockServer 
    File "C:\Python27\lib\site-packages\scrapy\tests\mockserver.py", line 6, in <m 
odule> 
    from twisted.internet import reactor, defer, ssl 
    File "C:\Python27\lib\site-packages\twisted\internet\ssl.py", line 59, in <mod 
ule> 
    from OpenSSL import SSL 
    File "build\bdist.win32\egg\OpenSSL\__init__.py", line 8, in <module> 
    File "build\bdist.win32\egg\OpenSSL\rand.py", line 11, in <module> 
    File "build\bdist.win32\egg\OpenSSL\_util.py", line 3, in <module> 
ImportError: No module named cryptography.hazmat.bindings.openssl.binding 

E quando Ho cercato su google che ultimo errore (senza modulo denominato cryptography.hazmat), vedo un paio di menzioni di pyOpenSSL. Così sono andato avanti e ho cercato in esecuzione easy_install pyOpenSSL==0.14 per assicurarsi che sia l'ultima versione, ma quando lo faccio, ottengo questo output:

c:\python27\include\pymath.h(22) : warning C4273: 'round' : inconsistent dll lin 
kage 
     C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\math.h(51 
6) : see previous definition of 'round' 
c:\users\bk\appdata\local\temp\easy_install-tztawu\cryptography-0.4\temp\easy_in 
stall-svxsjy\cffi-0.8.2\c\misc_win32.h(225) : error C2632: 'char' followed by 'b 
ool' is illegal 
c:\users\bk\appdata\local\temp\easy_install-tztawu\cryptography-0.4\temp\easy_in 
stall-svxsjy\cffi-0.8.2\c\misc_win32.h(225) : warning C4091: 'typedef ' : ignore 
d on left of 'unsigned char' when no variable is declared 
c/_cffi_backend.c(5295) : warning C4146: unary minus operator applied to unsigne 
d type, result still unsigned 
c/_cffi_backend.c(5296) : warning C4146: unary minus operator applied to unsigne 
d type, result still unsigned 
c/_cffi_backend.c(5297) : warning C4146: unary minus operator applied to unsigne 
d type, result still unsigned 
c/_cffi_backend.c(5298) : warning C4146: unary minus operator applied to unsigne 
d type, result still unsigned 
error: Setup script exited with error: command '"C:\Program Files (x86)\Microsof 
t Visual Studio 12.0\VC\BIN\cl.exe"' failed with exit status 2 

Quindi sono un po 'perso di ciò che devo fare per ottenere Scrapy installato e funzionante correttamente

+0

ho Python a 32 bit installato così come pyOpenSSL 32 bit. Non so cos'altro potrebbe essere erroneamente 64 bit ... – simplycoding

risposta

1

Si consiglia vivamente di utilizzare conda anziché pip, in particolare quando si utilizza Windows. Tra le altre cose, prenderà i file binari appropriati per il tuo sistema. Rende la creazione di un ambiente python scientifico (pensa a Scipy, Numpy, Pandas ...) un gioco da ragazzi.

Quindi, leggere su Anaconda, installare Anaconda, poi fare:

conda create -n scrapyenv python=2 # creates a new py2 environment 
activate scrapyenv     # switch to the new environment 
conda install scrapy    # install scrapy 

passaggi uno e due sono necessarie solo se si desidera che incapsulato in un ambiente separato. A proposito, verrà installata un'intera batteria di pacchetti utili se lo si fa conda install anaconda.

Additionaly, nel caso in cui conda non include pyOpenSSL o che non si desidera installare anaconda si prega di dare un'occhiata al punto 9 del tutorial How to install Scrapy in 64bit Windows 7.

+0

Stavo avendo gli stessi problemi di dipendenza e reinstallando con conda invece di pip risolto, grazie – mgilbert

21

Ho ricevuto lo stesso errore su Mac OS.

L'ho risolto usando openssl 0.13 anziché l'ultima versione.

easy_install pyOpenSSL==0.13 

o

pip install pyOpenSSL==0.13 
+0

Complimenti per aver funzionato .. Questo è il 2015 dove nella storia più persone realizzano la maggior parte del cose senza sapere perché funziona ... – nehemiah

+0

L'utilizzo di pip ha funzionato per me, non è stato necessario specificare la versione – TomSelleck

0

ho avuto gli stessi problemi, e cercare di risolverlo con la prima risposta, ma non funziona. Alla fine, rimuovo pyOpenSSL e scarica pyopenssl, setup. E il problema è risolto. L'URL del pyOpenSSL è: https://launchpad.net/pyopenssl

0

Si dovrebbe aggiornare pip prima si tenta di installare Scrapy:

pip install --upgrade pip 
pip install Scrapy 
Problemi correlati