Wie zu beheben "chromedriver ausführbare Datei muss im PFAD" Fehler beim ausführen der Selen Chrom mit virtualenv innerhalb PyDev?
Kurz:
Gelesen Steuerung des Browsers mit der Selen-Modul bei https://automatetheboringstuff.com/chapter11, ich versuche zu laufen, die Selen Chrom Fahrer in einer virtuellen Umgebung von PyDev. Ich habe es geschafft, es zu tun von außerhalb PyDev, sondern aus dem inneren, den ich bekommen:
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
Lange:
Ich bin mit Linux Debian 3.10.11-1.
Folgenden https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/, noch vor Beginn mit PyDev, ich . . .
-
Einrichten einer virtuellen Umgebung mit virtualenv
-
Virtualenv installiert
pip install virtualenv
-
Gemacht, ein Verzeichnis für mein Projekt
cd ~/temp/
mkdir my_project
cd my_mproject
-
Erstellt eine virtuelle Umgebung namens
env
virtualenv env
-
Aktiviert.
source env/bin/activate
-
Ging in Python, die interaktive Modus mir sagen, welche version von Python war ich mit
python
Python 2.7.12rc1 (Standard, Jun 13 2016, 09:20:59) [GCC 5.4.0 20160609] on linux2
-
-
Verlassen aus der interaktive Modus und installiert die Selen Zeug
-
Erste Modul
pip install selenium
-
Folgenden Vorschlag an https://groups.google.com/forum/#!Thema/gehorchen-die-Prüfung-Ziege-Buch/Ty4FQoV3S0Q, installiert chromedriver
-
cd-env/bin/
-
wget http://chromedriver.storage.googleapis.com/2.22/chromedriver_linux64.zip
-
entpacken chromedriver_linux64.zip
-
-
-
Schrieb ein kleines Skript, um zu sehen, ob es funktionieren würde
von selenium import webdriver driver = webdriver.Chrome()
Lief es. Ein Chrome-web-browser-Fenster geöffnet. Toll.
Nun zu versuchen, es in PyDev:
Etwa folgende https://www.caktusgroup.com/blog/2011/08/31/getting-started-using-python-eclipse/ . . .
-
Installiert Eclipse (Neon)
-
Installiert PyDev
-
Innerhalb von Eclipse ein neues Projekt erstellt (Datei Menü > Neues Projekt > Allgemeinen > Projekt, trat ein Projekt Name und geklickt Finish).
-
Zurück an der Eingabeaufforderung (da habe ich noch nicht herausgefunden, wie das von Eclipse und PyDev):
cd
'ed in mein neues Projekt-root-Verzeichnis und erstellt eine virtuelle Umgebung. -
Als bisher, aber immer noch in der Eingabeaufforderung, die ich aktiviert das neue Projekt der virtuellen Umgebung installiert und die Selen-Modul und dann die
chromedriver
ausführbare Datei, die kam von derchromedriver_linux64.zip
Datei. -
Zurück in Eclipse, ich habe mein Projekt für die Nutzung der virtuellen Umgebung, die ich denke, in PyDev lingo genannt wird, nicht eine virtuelle Umgebung, sondern eher ein interpreter:
-
Fenster Menü > Vorlieben > PyDev > Dolmetscher > Python-Interpreters > Hinzufügen.
-
Gab dem Dolmetscher einen Namen.
-
Für Interpreter Ausführbare, wählte ich die
python2.7
- Datei in mein Projekt virtuelle Umgebungbin
Verzeichnis -
Klickte mit der rechten Maustaste auf "my project", wählen Sie Eigenschaften > PyDev - Interpreter/Grammatik > Unter Dolmetscher ausgewählt meine neue Dolmetscherin > OK.
-
-
Gab mein Projekt mit dem gleichen Skript . . .
von selenium import webdriver driver = webdriver.Chrome()
ran und es durch einen Klick auf die Laufen Menü > Ausführen Als > Python Ausführen.
Nun aber statt einer Chrome-web-browser-Fenster öffnen, bekomme ich nur eine Meldung in der Eclipse-Konsole:
selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
Um die web-browser-Fenster zu öffnen, wie es funktioniert, wenn ich die gleiche Tasche von einer Eingabeaufforderung, die ich versucht habe:
-
hinzufügen der virtuellen Umgebung
bin
Ordner (da wo diechromedriver
- Datei ist) an den interpreter. -
löschen der Dolmetscher und erstellen es neu.
-
kopieren der
chromedriver
in das gleiche Verzeichnis, wo mein script ist. Kein Unterschied. -
hinzufügen der
chromedriver_linux64.zip
- Datei, die ich heruntergeladen habe an den interpreter. Immer noch der gleiche Fehler.
Ich Fort durch das schreiben mein script in PyDev, dann drehen Sie Sie auf die Eingabeaufforderung, um ihn auszuführen. Wünschte, ich könnte es in PyDev debug-Modus.
Wie kann ich diese 'chromedriver" in der " PATH
" in PyDev, so kann ich das Skript ausführen aus Eclipse heraus?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht sicher, ob dies ist die beste Sache zu tun, aber ich habe etwas gefunden, das scheint zu funktionieren: ich habe zu meinem Dolmetscher, die bereits vorhandenen-variable namens PFAD, und ich habe editiert, dass die variable den Wert, der den relativen Pfad zu meinem Projekt virtuelle Umgebung
bin
- Verzeichnis (also das Verzeichnis wo ich diechromedriver
ausführbare Datei gespeichert).Genauer:
Fenster Menü in Eclipse > Vorlieben > PyDev auf der linken Seite > Dolmetscher > Python-Interpreters.
Ausgewählt, die Dolmetscher, die ich erstellt hatte früher für mein Projekt (wie beschrieben in der obigen Frage)
Wechselte von Libaries zu Umgebung in der unteren Hälfte des Vorlieben Fenster
Klickte auf den Wählen Sie... - Taste auf der rechten Seite.
Einer Liste von Umgebungsvariable erschien.
Bildlauf nach unten die Liste durch und fand eines namens PFAD. Ausgewählt und klicken Sie auf die OK - Taste.
Ihn und seinen Wert (
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
) erschien in der sonst leeren Liste.Ich es ausgewählt und angeklickt Bearbeiten...
Namen und Wert wurde bearbeitbar.
Dem rechten Ende der Wert I Hinzugefügt
:env/bin
(also der relative Pfad von dem Verzeichnis, das mein script für mein Projekt die virtuelle Umgebungbin
Verzeichnis).Geklickt OK zurück zu den Vorlieben Fenster > Gelten in der Vorlieben Fenster > OK zu schließen, die Vorlieben Fenster.
Lief das Programm von Eclipse aus (Auswahl der Skript-Datei > Laufen Menü > Ausführen Als > Python Ausführen).
Einer Chrom (auch Chrom - dies ist Debian -) Fenster geöffnet, nur, wie auch schon passiert als ich mit meinem Programm von der Eingabeaufforderung aus.
Toll.
Wenn alle versuche, chromedriver in Ihrem PFAD fehl, können Sie auch hand-der Pfad der ausführbaren Datei zu webdriver.Chrome() etwa so:
Dies war meine eventuelle Lösung, wenn Sie versuchen zu laufen chromedriver aus einer virtualenv.