2016-05-26 13 views
2

Wenn ich verhalten ausführen scheint es von python2.7 zu laufen und nicht finden, Selen, das für Python3.4 installiert ist. Muss ich konfigurieren, um Python3.4 irgendwo auszuführen - ich kann nichts auf dem behave site oder anderswo sehen. Es gibt Beiträge über die Verwendung von Verhalten mit Python 3.4, so ist es möglich. HierPython Verhalten läuft von python2.7 anstatt python3.4

ist, was ich sehe:

$ behave 
... 
File "/usr/local/lib/python2.7/dist-packages/behave/runner.py", line 304, in exec_file 
    exec(code, globals, locals) 
    File "features/steps/home_page.py", line 2, in <module> 
    from selenium import webdriver 
ImportError: No module named selenium 

Ich habe PYTHONPATH Zeige 3.4/dist-Pakete in Python:

$ echo $PYTHONPATH 
/usr/local/lib/python3.4/dist-packages 
$ ls /usr/local/lib/python3.4/dist-packages/selenium 
common __init__.py __pycache__ selenium.py webdriver 

Ich habe in beiden /usr/local/lib/pythonX.X/dist-packages installiert verhalten wobei XX 2.7 und 3.4

Jede Hilfe sehr geschätzt.

Antwort

1

Wenn Sie das Verhalten für Python 3.x und Python 2.7 installieren, installiert jede Installation das Skript, das Behave unter der Adresse /usr/local/bin/behave startet. Welcher auch immer installiert wird, wird den Konflikt gewinnen, weil es die Datei des anderen überschreiben wird. (Die Dateien, die in /usr/local/lib/python<version>/dist-packages gehen in Ordnung sein, weil <version> jeweils unterschiedlich ist.)

Eine Möglichkeit, dies zu beheben, ist auf absetzen Behave Installation nur auf Python 3. Deinstallieren Sie die Python 2.7-Version und die Python-3-Version neu zu installieren und es sollte funktionieren. Wenn Sie beide Versionen für unterschiedliche Projekte benötigen, sollten Sie virtualenv verwenden, um Python-Installationen für die verschiedenen Projekte zu erstellen, an denen Sie gerade arbeiten. Darauf habe ich mich bei meinen eigenen Projekten festgelegt.

+0

Danke Louis, du hast mich auf die Antwort hingewiesen. Ich hatte versucht, mit pip und pip3 zu deinstallieren und neu zu installieren - obwohl es einige Verwirrung gibt, wenn pip denkt, dass Verhalten bereits mit der anderen Version installiert wird oder deinstalliert wird. Also zuerst habe ich gerade den Shebang im ' – MikeJ

+0

bearbeitet. Danke Louis, du hast mich auf die Antwort hingewiesen. Ich hatte versucht, mit pip und pip3 zu deinstallieren und neu zu installieren - obwohl es Verwirrung gab, wenn pip denkt, dass Verhalten bereits mit der anderen Version installiert wird oder deinstalliert wird (nicht sagend, wer verwirrt war, pip oder ich). Also habe ich zuerst den Shebang in '/ usr/local/bin/behave' bearbeitet, um python3 anstelle von python auszuführen, was den Trick gemacht hat. Später habe ich die Deinstallations-/Installationssequenz zum Laufen gebracht und bin zur selben Änderung gekommen. So könntest du wahrscheinlich den Shebang in 'behave' bearbeiten und das Problem beheben. Vielen Dank. – MikeJ