pipenv check --style
scheint die Syntaxprüfung abhängig von der eigenen Python-Version auszuführen, anstatt die in der Projekt-Pipfile angegebene Python-Version zu berücksichtigen.
$ python3 -V
: Python 3.5.3
$ pipenv --version
: pipenv, version 9.0.1
Keine Fehler.
/home/user/myenv/testfile.py:2:18: E999 SyntaxError: invalid syntax
pipenv check --style testfile.py
testfile.py
bar = 'baz'
print(f'foo {bar}')
Pipfile
[[source]]
verify_ssl = true
url = "https://pypi.python.org/simple"
name = "pypi"
[requires]
python_version = "3.6"
[dev-packages]
[packages]
Ja, es ist alles andere als perfekt.
AFAIK PyFlakes verlässt sich darauf, dass Python selbst installiert ist, um den Code zu analysieren (mit ast
), und kann daher nur genau diese Python-Version fusseln. Daran führt kein Weg vorbei, als eine separate Flake8-Kopie in der virtuellen Umgebung des Projekts zu installieren und stattdessen ( pipenv run flake8 .
) zu verwenden.
Vielleicht kann dieser Befehl optimiert werden, um festzustellen, ob Flake8 in der virtuellen Umgebung des Projekts verfügbar ist, und wenn möglich verwenden?
Ich würde eher die Flake8 entfernen und mich selbst überprüfen.
Das wäre noch besser.
Es wäre großartig, die Flake8-Integration zu entfernen. Zusätzlich zu der Integration, die nicht ganz richtig funktioniert, finde ich es auch ziemlich seltsam, dass Flake8 über Pipenv in meinen Produktionsumgebungen landet.
Was wäre das gewünschte Ergebnis, um dieses Ticket zu reparieren?
Sollte --style
komplett entfernt werden oder gibt es stattdessen eine bessere alternative Syntaxprüfung?
Da es nicht richtig funktioniert und das Problem nicht einfach zu lösen scheint, würde ich es auch vorziehen, es zu entfernen, wenn es irgendwann eine bessere Lösung gibt, die implementiert werden könnte, wenn sich die Leute darauf einigen, aber imo sollte nicht in einem kaputten Zustand gelassen werden.
Daran wird in # 1394 gearbeitet.
Hilfreichster Kommentar
Ich würde eher die Flake8 entfernen und mich selbst überprüfen.