为Django项目配置Pylint
天儿真好,
我有一些Django项目和一些其他Python项目作为git存储库。 我已经预先提交了在我的代码上运行Pylint的钩子,然后允许我提交它 - 这个钩子不知道该项目是Django应用程序还是vanilla 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项目(而不是vanilla python项目)时,它知道my_django_project/apps
也应该在sys.path
? 通常, manage.py
将其添加到sys.path
。
谢谢!
看看pylint配置文件中的init_hook。
init-hook=import sys; sys.path.insert(0, 'my_django_project/apps');
您显然需要为每个Django应用程序配置文件,并运行pylint,例如
pylint --rcfile=pylint.conf my_django_project
也许这并不能完全回答你的问题,但我建议使用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
添加到Koterpillar伟大的答案,您还可以配置您的预提交挂钩将当前目录更改为my_django_project
并从那里运行pylint。