Pipenv: flake8チェックはプロジェクトのPythonバージョンを尊重しません

作成日 2017年12月17日  ·  8コメント  ·  ソース: pypa/pipenv

pipenv check --styleは、プロジェクトのPipfileで指定されたPythonバージョンを尊重するのではなく、独自のPythonバージョンに応じて構文チェックを実行しているように見えます。

環境について説明してください
  1. OSタイプ:Debian 9
  2. Pythonバージョン: $ python3 -VPython 3.5.3
  3. Pipenvバージョン: $ pipenv --versionpipenv, 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]
Type help wanted

最も参考になるコメント

私は自分自身をチェックしているflake8を削除する傾向があります。

全てのコメント8件

はい、それは完璧にはほど遠いです。

AFAIK PyFlakesは、コードを分析するためにインストールされているPython自体に依存しているため( ast )、その正確なPythonバージョンのみをリントできます。 これを回避する方法は実際にはありませんが、プロジェクトのvirtualenv内に別のFlake8コピーをインストールし、代わりにそれを使用します( pipenv run flake8 . )。

たぶん、このコマンドを微調整して、Flake8がプロジェクトのvirtualenvで使用可能かどうかを検出し、可能であればそれを使用できますか?

私は自分自身をチェックしているflake8を削除する傾向があります。

それはさらに良いでしょう。

Flake8統合を削除するのは素晴らしいことです。 統合が正しく機能していないことに加えて、Flake8がPipenvを介して本番環境に配置されるのを見るのは非常に奇妙だと思います。

では、このチケットを修正することで、望ましい結果はどうなるでしょうか。

--style完全に削除する必要がありますか、それとも代わりに使用するより良い代替構文チェッカーがありますか?

それは適切に機能せず、それは簡単に解決できる問題ではないように思われるので、私も削除したいと思います。ある時点で、人々がそれに同意した場合に実装できるより良い解決策がある場合は、それでも壊れた状態のままにしないでください。

これは#1394で取り組んでいます。

このページは役に立ちましたか?
0 / 5 - 0 評価