Ich kann den ersten Befehl im Scrapy-Lernprogramm (http://doc.scrapy.org/en/latest/intro/tutorial.html)
nicht erfolgreich ausführen. Die unten eingefügte Code-Kopie ist das Ergebnis (mit dem Fehler am Ende).
Python 2.7 ist installiert und ich habe die Installationsanweisungen für scrapy (http://doc.scrapy.org/en/latest/intro/install.html)
befolgt. Ich verwende Python 2.7.6 32 Bit unter Windows 7 (64 Bit) .
Weitere Aspekte der Installation:
Twisted-13.2.0.dist-info
zope.interface-4.1.1-py2.7
Scrapy-0.22.2-py2.7
lxml-3.3.3-py2.7
cssselect-0.9.1-py2.7
cryptography-0.3.dist-info
pyOpenSSL-0.14-py2.7
pywin32_system32
Und hier ist die Fehlermeldung:
%Vor%Ich hatte dieses Problem aufgrund einer anderen (älteren?) Version von libeay32.dll und ssleay32.dll, die sich auf dem PATH vor denen meiner eigenen OpenSSL 1.0.1g Installation befanden. Ich empfehle Ihnen, Process Monitor von SysInternals zu verwenden, um python.exe zu überwachen, um zu sehen, wo es Ihr OpenSSL tatsächlich lädt DLLs von.
In meinem Fall war der Täter einige Intel-Komponenten bei C:\Program Files (x86)\Intel\iCLS Client\
, die mit meinen Treibern geliefert wurden. Nachdem ich mein eigenes OpenSSL-Verzeichnis früher in der Umgebungsvariable PATH
verschoben hatte, funktionierte alles wie erwartet.
@lambokini hat recht, aber ich kann die Antwort kommentieren, also kommt diese.
Laden Sie zuerst die openssl-Quelle von Ссылка
herunterZweiter Start "Visual Studio-Eingabeaufforderung", kompilieren und installieren Sie openssl folgen Installationsanleitung (INSTALL.W32 oder INSTALL.W64).
Fügen Sie dann "[openssl install path] \ bin" zur Umgebungsvariable "path" hinzu, und Sie können ssleay32.dll und libeay32.dll unter system32 löschen.
Hinweis: dll wird von der ersten Stelle geladen werden, die es gesucht. Zum Beispiel: Pfad = xxx; d: \ PHP5; d: \ openssl \ bin; Wenn ssleay32.dll und libeay32.dll auch unter PHP5 erscheinen, dann wird python diesen laden.
Ich werde meine eigene Meinung dazu aufgrund meiner extremen Frustration niederschreiben und hoffe, dass dies einem anderen armen Kerl helfen könnte, der Probleme mit seiner Arbeit am Fenster hat.
Hatte ähnliche Probleme mit fehlerhaften libeay32.dll und ssleay32.dll, oder so scheint es, aber bestätigte es mit Prozessmonitor .
Alles ging zur Hölle, nachdem diese DLLs in System32 gefunden wurden:
Also habe ich nicht unter falschem PATH
s gelitten (aber ich habe ihre Reihenfolge geändert, also kommt system32 vor C:\Program Files (x86)\Intel\iCLS Client\
.
Als nächstes habe ich diese Seite benutzt, auf die die anderen hier hingewiesen haben. Ich habe Win32 OpenSSL v1.0.2j Light verwendet, da das neuere (1.1.0b) aus irgendeinem Grund diese DLLs für mich nicht generiert hat.
Generieren Sie sie in einem anderen Ordner, damit sie als neu angezeigt werden, und kopieren Sie sie anschließend in system32. Voila, scrapy Befehlszeile funktioniert.
Ab sofort erstellt anacondas scrapy 1.1.2 keine Schlüsseldatei zum Ausführen von scrapy-Befehlen, ich habe eine Frage zu diesem Problem geöffnet und geschlossen. hier .
Wie bereits in den anderen Antworten erwähnt, wird das Problem durch die beiden Dateien ssleay32.dll
und libeay32.dll
verursacht.
Der Fehler ist aufgetreten, als OpenSSL in Python importiert wurde
So habe ich das Problem unter Windows 10 gelöst. Wenn Sie git für Windows haben (laden Sie hier herunter), können Sie diese einfach kopieren zwei Dateien von Git\mingw64\bin\
an einen Ort in deinem Pfad. Was für mich funktionierte, war, sie nach c:\Windows
zu kopieren (oder in den Ordner, von dem aus Sie Python starten).
Um die Speicherorte der DLL-Dateien zu finden, geben Sie Folgendes an einer Eingabeaufforderung mit dem Befehl cmd ein:
%Vor% Ich bin heute auf einem Windows 7-System über diesen Fehler gestolpert. Das Problem für mich war ähnlich wie @ user2314737, @voetsjoeba und @Olegp. libeay32.dll und ssleay32.dll in Ordnern, die sich auf Intel beziehen, die sich in der Umgebungsvariable Windows path
befanden.
Leider ist mein System gesperrt (Arbeitscomputer), daher konnte ich die Dateien nicht verschieben oder die Pfadvariable des Systems nicht ändern. Stattdessen habe ich die Intel-bezogenen Elemente manuell aus der Pfadvariablen entfernt, auf die Python zugreift:
%Vor%Wie bereits oben erwähnt, gibt es zwei .dll-Dateien, die anstelle von openssl geladen werden, das mit Scrapy heruntergeladen wird. Diese beiden DLL-Dateien sind nicht kompatibel.
Ich habe dies gelöst, indem ich die heruntergeladenen .dll-Dateien (ich habe Anaconda zur Installation von scrapy verwendet) als eine höhere Priorität in den Umgebungsvariablen platziert habe, wie im angehängten Bild gezeigt.
In Umgebungsvariablen, innerhalb der Systemvariablen und des "Pfades" habe ich die Anaconda3-Position wie oben gezeigt oben platziert und mache daher die Priorität, wenn python openssl lädt
Tags und Links dll python-2.7 module scrapy