7

G'Day、

私はいくつかの Django プロジェクトと、他の多くの Python プロジェクトを git リポジトリとして持っています。コードのコミットを許可する前にコードで Pylint を実行する pre-commit フックがあります。このフックは、プロジェクトが Django アプリケーションなのかバニラ Python プロジェクトなのかを認識しません。

私のすべての Django プロジェクトでは、次のような構造になっています。

> my_django_project
|-- manage.py
|-- settings.py
|--> apps
   |--> my_django_app
      |-- models.py
      |-- admin.py 

このプロジェクトで pylint を実行すると、次のようなエラーが表示されます。

F:  4,0: Unable to import 'my_django_app.models'

たとえば、my_django_app.adminモジュールの場合。

Pylint を設定して、django プロジェクト (バニラの python プロジェクトではない) を処理するときにmy_django_project/appssys.path通常は、 にmanage.py追加しsys.pathます。

ありがとう!

4

3 に答える 3

4

pylint 構成ファイルの init_hook を見てください。

init-hook=import sys; sys.path.insert(0, 'my_django_project/apps');

明らかに、Django アプリケーションごとに構成ファイルが必要であり、pylint を次のように実行します。

pylint --rcfile=pylint.conf my_django_project
于 2013-02-28T23:24:32.050 に答える
0

Koterpillar の優れた回答に加えて、pre-commit フックを構成して現在のディレクトリを変更し、my_django_projectそこから pylint を実行することもできます。

于 2014-02-17T14:06:30.707 に答える
0

多分これはあなたの質問に完全には答えませんが、次のような警告を避けるためにdjango-lintを使用することをお勧めします:

F:  4: Unable to import 'myapp.views'
E: 15: MyClass.my_function: Class 'MyClass' has no 'objects' member
E: 77: MyClass.__unicode__: Instance of 'MyClass' has no 'id' member
于 2011-12-21T03:15:17.340 に答える