2014-06-21 3 views
7

Unter den vielen Paketen, die Benutzer für Scrapy installieren müssen, habe ich Probleme mit pyOpenSSL.Paketabhängigkeiten für Scrapy installieren

Wenn ich versuche, ein Tutorial Scrapy Projekt angelegt zu bekommen, bekomme ich diese folgende Ausgabe:

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 

Und wenn gegoogelt ich das letzte Fehler (kein Modul mit dem Namen cryptography.hazmat), habe ich ein paar erwähnt sehen von pyOpenSSL. Also ging ich weiter und versuchte easy_install pyOpenSSL==0.14 laufen, um sicherzustellen, es ist die neueste Version, aber wenn ich das tue, erhalte ich diese Ausgabe:

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 

So bin ich ein wenig verloren, was ich tun müssen, um zu bekommen Scrapy up and running richtig

+0

Ich habe wenig Python 32 sowie pyopenssl 32-Bit installiert. Nicht sicher, was sonst 64 Bit falsch sein könnte ... – simplycoding

Antwort

1

Ich empfehle die Verwendung von conda anstelle von pip, vor allem bei der Verwendung von Windows. Unter vielen anderen Dingen wird es die passenden Binärdateien für Ihr System greifen. Es macht die Einrichtung einer wissenschaftlichen Python-Umgebung (denke Scipy, Numpy, Pandas ...) ein Kinderspiel.

Also, lesen Sie auf Anaconda, das Installieren Anaconda, dann tun:

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

Schritte eins und zwei sind nur erforderlich, wenn Sie es in einer separaten Umgebung eingekapselt werden soll. Btw, eine ganze Batterie nützlicher Pakete wird installiert, wenn Sie conda install anaconda tun.

Additionaly, falls conda nicht enthalten pyOpenSSL oder Sie wollen nicht How to install Scrapy in 64bit Windows 7 einen Blick auf Punkt 9 des Tutorials installieren nehmen anaconda bitte.

+0

Ich hatte die gleichen Abhängigkeitsprobleme und Neuinstallation mit Conda anstelle von Pip gelöst, danke – mgilbert

21

Ich habe den gleichen Fehler unter Mac OS.

Ich löste es mit OpenSSL 0.13 anstelle der neuesten Version.

easy_install pyOpenSSL==0.13 

oder

pip install pyOpenSSL==0.13 
+0

Daumen hoch für es funktioniert .. Das ist 2015, wo in der Geschichte mehr Menschen die meisten erreichen Dinge ohne zu wissen, warum es funktioniert ... – nehemiah

+0

Die Verwendung von Pip arbeitete für mich, musste aber keine Version angeben – TomSelleck

0

habe ich die gleichen Probleme, und versuchen Sie es mit der ersten Antwort zu lösen, aber es funktioniert nicht. Am Ende entferne ich die pyOpenSSL und lade die pyopenssl, setup. Und das Problem ist gelöst. die URL pyopenssl ist: https://launchpad.net/pyopenssl

0

Sie sollten pip aktualisieren, bevor Sie versuchen, Scrapy zu installieren:

pip install --upgrade pip 
pip install Scrapy