Seite 1 von 1

Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Montag 12. November 2018, 15:57
von 2Bsafe
Hallo,

ich bin ganz neu hier. Seit ein paar Wochen versuche ich mir anhand eines Buchs Python beizubringen. Prinzipiell komme ich gut voran aber jetzt habe ich ein Problem, bei welchem mir auch Google nicht helfen konnte - zumindest nicht bei meinen Suchanfragen.

Ich möchte auf Windows ein geschriebenes Programm auf pep8-Konformität überprüfen. Im meinem Buch steht geschrieben, dass ich auf der Windows Kommandozeile folgende Befehle eingeben soll:

Code: Alles auswählen

py -3 -m pip install pytest
sowie

Code: Alles auswählen

py -3 -m pop install pytest-pep8
Beides funktioniert einwandfrei. Die Installationen laufen ohne Fehlermeldungen durch.
Wenn ich aber schließlich den Test durchführe, mit

Code: Alles auswählen

py.test --pep8 datei.py
bekomme ich die Windows Fehlermeldung, dass der Befehl "py.test" nicht gefunden wurde.

Bei meiner Recherche bin ich zwar auf eine Online-Plattform gestoßen, die auch pep8-Tests durchführt, womit ich dieses Problem umgehen könnte, da ich mich bisher aber durch alle Themen durchgebissen habe, würde ich dieses Sache auch gerne hinbekommen.

Das Buch bezieht sich auf Python 3.4. Mir kam der Gedanke, dass py.test bei der aktuellen Version prinzipiell nicht mehr funktioniert. Sollte dem so sein, wüsste ich gerne, wie das aktuell funktioniert.
Sorry, ist sicherlich eine Noob-Frage - aber das bin ich eben (noch).

Danke und Gruß,

Christian

Re: Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Montag 12. November 2018, 17:33
von __blackjack__
Gibt es denn pytest ohne den Punkt? Kann sein das Windows das nicht mag und py.test installiert normalerweise beide Varianten. Zumindest unter Linux.

Re: Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Montag 12. November 2018, 19:22
von 2Bsafe
__blackjack__ hat geschrieben: Montag 12. November 2018, 17:33 Gibt es denn pytest ohne den Punkt? Kann sein das Windows das nicht mag und py.test installiert normalerweise beide Varianten. Zumindest unter Linux.
Hatte ich auch schon vermutet. Nein, auch pytest ergibt die gleiche Fehlermeldung.
Hab mich inzwischen auch auf Youtube durchgewurschtelt. In den Videos dort funktioniert das mit py.test

Habe Python und die Entwicklerwerkzeuge auch auf einem anderen Windows 10 Rechner installiert. Das gleiche Ergebnis.

Re: Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Montag 12. November 2018, 19:36
von narpfel
@2Bsafe: Kannst du Pytest über `py -3 -m pytest` aufrufen?

Re: Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Montag 12. November 2018, 20:00
von 2Bsafe
narpfel hat geschrieben: Montag 12. November 2018, 19:36 @2Bsafe: Kannst du Pytest über `py -3 -m pytest` aufrufen?
Ja, dann passiert was:
Bild

Mir kam die Idee es mit

Code: Alles auswählen

py -3 -m pytest zuprüfendedatei.py
zu versuchen. Dann bekomme ich aber nur einen blinkenden Cursor und es passiert nichts weiter.

Die Meldungen sagen aus, dass es an Zugriffsrechten hapert. Kann es damit zusammenhängen? Hatte die Kommandozeile als Administrator aufgerufen.

Re: Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Montag 12. November 2018, 20:24
von __blackjack__
@2Bsafe: Wenn man keine Argumente angibt, dann fängt pytest an vom aktuellen Arbeitsverzeichnis aus alle Unterverzeichnisse nach Python-Dateien zu durchsuchen.

Was enthält denn 'zuprüfendedatei.py'? Kann man die importieren ohne das irgendwie ein Programm anfängt zu laufen?

Re: Probleme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Montag 12. November 2018, 21:02
von 2Bsafe
__blackjack__ hat geschrieben: Montag 12. November 2018, 20:24 Was enthält denn 'zuprüfendedatei.py'? Kann man die importieren ohne das irgendwie ein Programm anfängt zu laufen?
Das ist nur eine Dummy-Datei mit ein paar Zeilen belanglosem Code. Ich möchte es nur hinbekommen, dass ich Programme auf PEP8-Konformität testen kann.

Welche Argumente könnte ich denn angeben, dass in einem bestimmen Ordner eine Datei gesucht und überprüft werden würde?

Re: Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Montag 12. November 2018, 21:31
von __blackjack__
@2Bsafe: Wenn Du diesen Test mit pytest machen möchtest, dann muss der Code so geschrieben sein, dass man ihn ohne Seiteneffekte importieren kann. Das sollte man sowieso tun. Sie das als zusätzlichen Test und schreib die Dummy-Datei entsprechend um.

Ansonsten nimm halt ein anderes Werkzeug, zum Beispiel ``pep8``. Das müsste als Abhängigkeit von pytest-pep8 sowieso schon installiert sein.

Re: Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Montag 12. November 2018, 21:40
von 2Bsafe
Verräts du mir, wie ich mit "pep8" einen solchen Test durchführen kann? Oder hast du einen Link für mich, damit ich mir das aneignen kann?

Re: Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Montag 12. November 2018, 21:44
von __blackjack__
Naja, einfach aufrufen mit dem Dateinamen als Argument: https://pypi.org/project/pep8/

Bei Dir kommt dann wahrscheinlich wieder das Problem dazu das die per ``pip`` installierten Programme nicht im %PATH% liegen.

Re: Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Montag 12. November 2018, 22:20
von 2Bsafe
__blackjack__ hat geschrieben: Montag 12. November 2018, 21:44 Bei Dir kommt dann wahrscheinlich wieder das Problem dazu das die per ``pip`` installierten Programme nicht im %PATH% liegen.
Aber das lässt sich ja ändern. Ist das dieser Pfad, den ich eintragen muss?

Code: Alles auswählen

C:\...\AppData\Local\pip
Danke für den Link!

Re: Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Montag 12. November 2018, 22:34
von 2Bsafe
Meinst du es liegt an den Umgebungsvariablen, dass py.test nicht gefunden wird?
Wenn ja, welchen Pfad muss ich eintragen?
Den oben genannten Pfad habe ich eingetragen. Hat nichts verändert. Abgesehen davon, dass da auf den ersten Blick auch nichts hilfreiches drin liegt.

Re: Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Montag 12. November 2018, 22:35
von narpfel
@2Bsafe: Du musst den Pfad zum Verzeichnis, in dem `pip` liegt, angeben. Das sollte der Installer eigentlich automatisch machen, wenn man die Option nicht abwählt. Hier ist das in der Python-Dokumentation beschrieben.

Edit: Die restlichen Programme wie `pytest` und `pep8` sollte im gleichen Verzeichnis liegen.

Re: Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Mittwoch 14. November 2018, 11:41
von 2Bsafe
Hab es jetzt hinbekommen. Es war eine Umgebungsvariable zu setzen.

Und zwar:

Code: Alles auswählen

C:\Program Files (x86)\Scripts
Denn dort liegen py.test und manch anderes.

Das System muss neu gestartet werden nachdem der Pfad bei den Umgebungsvariablen eingetragen wurde.

Danke für die Hilfe.

Re: Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Sonntag 18. November 2018, 17:54
von pixewakb
Wie hast Du den Pfad als Umgebungsvariable gesetzt? Ich habe wahrscheinlich ein ähnliches Problem (pipenv)...

Re: Problmeme mit py.test unter Windows für pep8 Überprüfung

Verfasst: Mittwoch 21. November 2018, 23:07
von 2Bsafe
pixewakb hat geschrieben: Sonntag 18. November 2018, 17:54 Wie hast Du den Pfad als Umgebungsvariable gesetzt? Ich habe wahrscheinlich ein ähnliches Problem (pipenv)...
In den Systemeigenschaften im Reiter Erweitert (Windows 10) auf "Umgebungsvariablen" klicken. Dort die Variable "Path" anlegen und den Pfad zum Ordner "Script" eintragen, in welchem py.test liegt.
Sollte die Path Variable schon vorhanden sein, kannst du einfach einen weiteren Pfad hinzufügen, indem du den vorhandenen Pfad mit einem Semikolon ";" abschließt und den zusätzlichen Pfad in der Variable Path einträgst.