27

私はPythonにかなり慣れていませんが、現在、コードの品質をチェックするためにpylintを使用しようとしています。問題が発生しています。私の pylint は virtualenv python インタープリターを指していません。pylint --version を実行したときに得られる出力は次のとおりです。

 $ pylint --version
   pylint 0.21.1,
   astng 0.20.1, common 0.50.3
   Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45)
   [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)]

virtualenv には、python 2.7 がインストールされています。誰かが私にそれを解決する方法を教えてくれれば、あなたが助けてくれることに感謝します.

4

10 に答える 10

48

安価なトリックは、virtualenv python を使用して (グローバル) pylint を実行することです。python $(which pylint)の代わりに を使用してこれを行うことができますpylint。zshでもできますpython =pylint

于 2013-07-29T12:27:28.653 に答える
23

仮想環境に pylint をインストールしてから、そのインスタンスを実行する必要があると確信しています。

更新 - 生活を楽に:

仮想環境で多くの作業を行っている人は、(既知の場所またはパス上に) バッチ ファイルを作成するか、次のような名前の bash スクリプトを作成することをお勧めしますgetlint.bat

pip install pylint

仮想環境をアクティブ化した後にこれを呼び出すと、その仮想環境に pylint がインストールされます。オフラインである可能性が高いか、インターネット接続が不十分な場合は、インターネット接続が良好なときに1回 (おそらく Python 2 と 3 のそれぞれに 1 回)実行できます。

mkdir C:\Some\Directory\You\Will\Leave\Alone
pip download --dest=C:\Some\Directory\You\Will\Leave\Alone pylint

これにより、pylint とその依存関係がダウンロードされ、次のようにC:\Some\Directory\You\Will\Leave\Alone変更できgetlint.batます。

pip install pylint --find-links=C:\Some\Directory\You\Will\Leave\Alone

その後、事前にダウンロードされたバージョンが使用されます。

于 2013-07-29T11:46:52.170 に答える
8

pylintを手動で実行すると、Noufal Ibrahimの答えが機能します。

エディター/IDE から pylint を実行する場合は、プラグインを正しく構成する必要があります。

それはトリッキーになることができます。これは、各 IDE/プラグインのバグと思われるかもしれませんが、そのようなものです。

別の回答で提案されているように変更/usr/bin/pylintすると、pylint を使用するたびにこれが修正されます (手動使用、またはエディター統合)。#!/usr/bin/env python

ただし、少なくとも Debian では、使用#!/usr/bin/python設計上の選択であり、バグではありません。根拠はこちらをご覧ください。

そのシステム ファイルの変更を避けるために、/usr/bin/pylintinのコピーを作成でき/usr/local/binます。

cp /usr/bin/pylint /usr/local/bin/pylint
vi usr/local/bin/pylint # Edit the file to use /usr/bin/env python

これは pylint の更新によって壊れることはありませんが、それでも Debian の「強く推奨される選択」に違反しています。

この方法にはルート権限が必要です。権限のないユーザーがエイリアスを作成する可能性があります

alias pylint='/usr/bin/env python $(which pylint)'.

私は常に virtualenv で開発し、virtualenv を作成するときに pylint と flake8 を自動的にインストールするように postmkvirtualenv フックをセットアップするので、debian で配布されているバージョンはもう使用しません。

于 2016-04-21T09:46:56.400 に答える
2

この質問に回答してからしばらく経ちましたが、他の誰かが同じ問題に遭遇した場合に備えて、この投稿をここに残しておくべきだと思いました.

なんらかの理由pylintで、仮想環境ではなくグローバル空間に保持する必要がある場合は、次の推奨事項を使用できます: PyLint + VirtualEnv

基本的には、グローバルを使用し、残りの環境をロードする Python プログラムのエンコード バージョンをpylint使用して構成するように指示されています。init-hookpylint

于 2016-09-05T01:54:02.660 に答える
0

私はSyntastic + Pylintの組み合わせを使用しています。いつでも作業できるさまざまなvirtualenvがあるため、virtualenvコマンドのラッパーを作成しました。これは、とりわけ、すべての要件の後にpylintをインストールします.

そうすれば、virtualenv をアクティブ化するたびに、独自の pylint バージョンを取得できます。

これがお役に立てば幸いです。@briford-wylie からグローバルなものを削除するためのヒントをありがとう

于 2017-04-12T07:57:59.257 に答える