pipenv check --style
は、プロジェクトのPipfileで指定されたPythonバージョンを尊重するのではなく、独自のPythonバージョンに応じて構文チェックを実行しているように見えます。
$ python3 -V
: Python 3.5.3
$ pipenv --version
: pipenv, version 9.0.1
エラーはありません。
/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]
はい、それは完璧にはほど遠いです。
AFAIK PyFlakesは、コードを分析するためにインストールされているPython自体に依存しているため( ast
)、その正確なPythonバージョンのみをリントできます。 これを回避する方法は実際にはありませんが、プロジェクトのvirtualenv内に別のFlake8コピーをインストールし、代わりにそれを使用します( pipenv run flake8 .
)。
たぶん、このコマンドを微調整して、Flake8がプロジェクトのvirtualenvで使用可能かどうかを検出し、可能であればそれを使用できますか?
私は自分自身をチェックしているflake8を削除する傾向があります。
それはさらに良いでしょう。
Flake8統合を削除するのは素晴らしいことです。 統合が正しく機能していないことに加えて、Flake8がPipenvを介して本番環境に配置されるのを見るのは非常に奇妙だと思います。
では、このチケットを修正することで、望ましい結果はどうなるでしょうか。
--style
完全に削除する必要がありますか、それとも代わりに使用するより良い代替構文チェッカーがありますか?
それは適切に機能せず、それは簡単に解決できる問題ではないように思われるので、私も削除したいと思います。ある時点で、人々がそれに同意した場合に実装できるより良い解決策がある場合は、それでも壊れた状態のままにしないでください。
これは#1394で取り組んでいます。
最も参考になるコメント
私は自分自身をチェックしているflake8を削除する傾向があります。