web-dev-qa-db-ja.com

pythonおよびpylintでsys.pathへのパスを追加する

そう。この質問は死ぬように求められたようですが、答えのどれも[〜#〜] i [〜#〜]やりたいことを扱っていないようです。

実行するプロジェクトのセットに含めたいライブラリが別のディレクトリにありますother。そのライブラリを追加したくない Pythonを実行するたびに。

だから、私が持っていたやっていたのは私のpythonコード:

import sys
sys.path.append("/tmp/demo/src/my-lib")
import MyClass

これはうまくいきました。しかし、私がピリントを発見して愛した今、それは不平を言います

E:  7, 0: Unable to import 'MyClass' (import-error)
C:  7, 0: Import "import MyClass" should be placed at the top of the module (wrong-import-position)

ディレクティブを使用して(または.pylintrcに配置するだけで)import-errorとwrong-import-positionを無効にできることはわかっていますが、そうではありません。 global to allではないsys.pathへのパスを、それを使用するプロジェクトのサブセットに追加する「正しい」方法を知りたいのですが。特定のライブラリ。

これは可能ですか?

10
bnsh

Pylintの「initフック」を使用してそれを行うことができます。この答えを参照してください: https://stackoverflow.com/a/3065082/432

そして pylintのバグトラッカーからのこのステートメント

これを自動的にサポートすることはおそらくないでしょう。ただし、現時点では、「-init-hook = "import sys; sys.path.append(...)」を使用して、パスへの手動追加をサポートしていますが、より面倒な方法です。

7
John Zwinck