为Django项目配置Pylint
G'Day 我有许多Django项目和许多其他Python项目作为git存储库。我有一个pre-commit钩子,它在允许我提交之前在我的代码上运行Pylint——这个钩子不知道这个项目是Django应用程序还是普通Python项目 对于我所有的Django项目,我的结构如下:为Django项目配置Pylint,django,pylint,Django,Pylint,G'Day 我有许多Django项目和许多其他Python项目作为git存储库。我有一个pre-commit钩子,它在允许我提交之前在我的代码上运行Pylint——这个钩子不知道这个项目是Django应用程序还是普通Python项目 对于我所有的Django项目,我的结构如下: > my_django_project |-- manage.py |-- settings.py |--> apps |--> my_django_app |-- models.py
> 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_项目/apps
也应该在sys.path
中?通常,manage.py
会将其添加到sys.path
谢谢 也许这并不能完全回答您的问题,但我建议使用,以避免出现以下警告:
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
看看pylint配置文件中的init_钩子
init-hook=import sys; sys.path.insert(0, 'my_django_project/apps');
很明显,每个Django应用程序都需要一个配置文件,并以如下方式运行pylint:
pylint --rcfile=pylint.conf my_django_project
除了Koterpillar的好答案之外,您还可以配置预提交钩子,将当前目录更改为my_django_project,然后从那里运行pylint。最好是将.rcfile保存在项目中,然后只需设置
init hook=import sys;sys.path.insert(0,“应用程序”)代码>。通过这种方式,您可以与开发人员共享项目,而无需硬编码路径是my_django_项目/apps
和my_django_项目/apps/my_django_app
普通Python包?如果是这样的话,my_django_项目/apps/__初始__.py
和my_django_项目/apps/my_django_应用/_初始__.py
?