如何使用pylint_django?
How to use pylint_django?
我是 linting 新手,使用 python 2.7 和 pylint-django 0.7.2 对我的 django 代码进行 linting。
pylint --load-plugins pylint_django [..other options..] <path_to_your_sources>
我没看懂上面命令中的path_to_your_sources?我必须提供 .py 文件还是 django 目录?
我尝试 运行 一个 .py 文件,得到以下错误:
ImproperlyConfigured: You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings
任何人都可以让我知道这个错误是什么意思以及如何使用 pylint_django。
我遇到了与您提到的类似的问题,让我与您分享我如何解决它的经验:
- 我的项目 运行 在工作环境中使用“virtualenvwrapper”:
(project_textile) mlazo@mlazo-pc:~/proyectos/project_textile$ pwd
/home/mlazo/proyectos/project_textile
(project_textile) mlazo@mlazo-pc:~/proyectos/project_textile$ echo $VIRTUAL_ENV
/home/mlazo/.virtualenvs/project_textile
- 我遇到了错误:
RuntimeError: DJANGO_SETTINGS_MODULE required for resolving ForeignKey string references, see Usage section in README at https://pypi.org/project/pylint-django/!
首先确定我的django项目的主目录是“/home/mlazo/proyectos/project_textile/public/”。
然后,通过命令行测试pylint命令,如果你注意到我设置了必需的参数“DJANGO_SETTINGS_MODULE”,更多详细信息在这里解释 https://pypi.org/project/pylint-django/ :
DJANGO_SETTINGS_MODULE=settings.develop /home/mlazo/.virtualenvs/project_textile/bin/pylint --reports=n --msg-template={path}:{line}:{msg_id}:{msg} --load-plugins pylint_django --disable=C0303 /home/mlazo/proyectos/project_textile/public/apps/grants/views.py
- 结果是成功的,最后没有错误:
public/apps/grants/views.py:5:W0611:Unused redirect imported from django.shortcuts
public/apps/grants/views.py:9:W0611:Unused Http404 imported from django.http
public/apps/grants/views.py:19:W0611:Unused Value imported from django.db.models
public/apps/grants/views.py:19:W0611:Unused F imported from django.db.models
public/apps/grants/views.py:19:W0611:Unused Prefetch imported from django.db.models
------------------------------------------------------------------
Your code has been rated at 8.37/10 (previous run: 8.37/10, +0.00)
- 一旦命令运行良好,我开始考虑如何在我放置在我的工作环境中时自动设置变量“DJANGO_SETTINGS_MODULE”,我检查了每次你放置在你的工作环境中时,都有可用的挂钩 ({pre,post}activate 和 {pre,post}deactivate) 可以执行:
(project_textile) mlazo@mlazo-pc:~/proyectos/project_textile$ ls $VIRTUAL_ENV/bin/*activate
/home/mlazo/.virtualenvs/project_textile/bin/activate /home/mlazo/.virtualenvs/project_textile/bin/postdeactivate /home/mlazo/.virtualenvs/project_textile/bin/predeactivate
/home/mlazo/.virtualenvs/project_textile/bin/postactivate /home/mlazo/.virtualenvs/project_textile/bin/preactivate
- 所以我继续在以下文件中添加以下命令:
(project_textile) mlazo@mlazo-pc:~/proyectos/project_textile$ cat /home/mlazo/.virtualenvs/project_textile/bin/postactivate
#!/bin/bash
# This hook is sourced after this virtualenv is activated.
export DJANGO_SETTINGS_MODULE=settings.develop
(project_textile) mlazo@mlazo-pc:~/proyectos/project_textile$ cat /home/mlazo/.virtualenvs/project_textile/bin/predeactivate
#!/bin/bash
# This hook is sourced before this virtualenv is deactivated.
unset DJANGO_SETTINGS_MODULE
- 最后,每次你在你的工作环境中放置你将设置“DJANGO_SETTINGS_MODULE”变量,并且每次你离开环境时它都会被销毁:
mlazo@mlazo-pc:~/proyectos/project_textile$ workon project_textile
(project_textile) mlazo@mlazo-pc:~/proyectos/project_textile$ echo $DJANGO_SETTINGS_MODULE
settings.develop
(project_textile) mlazo@mlazo-pc:~/proyectos/project_textile$ deactivate
mlazo@mlazo-pc:~/proyectos/project_textile$ echo $DJANGO_SETTINGS_MODULE
我真的希望它对处理类似事件的任何人都有帮助。
此致,
只需执行此操作即可。
设置环境变量:
DJANGO_SETTINGS_MODULE=your_settings_file_path
For eg DJANGO_SETTINGS_MODULE=mysettings.setting.base
然后运行这个命令:
pylint --load-plugins=pylint_django --rcfile your_pylint_filename
Use * to run pylint for your whole project
我是 linting 新手,使用 python 2.7 和 pylint-django 0.7.2 对我的 django 代码进行 linting。
pylint --load-plugins pylint_django [..other options..] <path_to_your_sources>
我没看懂上面命令中的path_to_your_sources?我必须提供 .py 文件还是 django 目录?
我尝试 运行 一个 .py 文件,得到以下错误:
ImproperlyConfigured: You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings
任何人都可以让我知道这个错误是什么意思以及如何使用 pylint_django。
我遇到了与您提到的类似的问题,让我与您分享我如何解决它的经验:
- 我的项目 运行 在工作环境中使用“virtualenvwrapper”:
(project_textile) mlazo@mlazo-pc:~/proyectos/project_textile$ pwd
/home/mlazo/proyectos/project_textile
(project_textile) mlazo@mlazo-pc:~/proyectos/project_textile$ echo $VIRTUAL_ENV
/home/mlazo/.virtualenvs/project_textile
- 我遇到了错误:
RuntimeError: DJANGO_SETTINGS_MODULE required for resolving ForeignKey string references, see Usage section in README at https://pypi.org/project/pylint-django/!
首先确定我的django项目的主目录是“/home/mlazo/proyectos/project_textile/public/”。
然后,通过命令行测试pylint命令,如果你注意到我设置了必需的参数“DJANGO_SETTINGS_MODULE”,更多详细信息在这里解释 https://pypi.org/project/pylint-django/ :
DJANGO_SETTINGS_MODULE=settings.develop /home/mlazo/.virtualenvs/project_textile/bin/pylint --reports=n --msg-template={path}:{line}:{msg_id}:{msg} --load-plugins pylint_django --disable=C0303 /home/mlazo/proyectos/project_textile/public/apps/grants/views.py
- 结果是成功的,最后没有错误:
public/apps/grants/views.py:5:W0611:Unused redirect imported from django.shortcuts
public/apps/grants/views.py:9:W0611:Unused Http404 imported from django.http
public/apps/grants/views.py:19:W0611:Unused Value imported from django.db.models
public/apps/grants/views.py:19:W0611:Unused F imported from django.db.models
public/apps/grants/views.py:19:W0611:Unused Prefetch imported from django.db.models
------------------------------------------------------------------
Your code has been rated at 8.37/10 (previous run: 8.37/10, +0.00)
- 一旦命令运行良好,我开始考虑如何在我放置在我的工作环境中时自动设置变量“DJANGO_SETTINGS_MODULE”,我检查了每次你放置在你的工作环境中时,都有可用的挂钩 ({pre,post}activate 和 {pre,post}deactivate) 可以执行:
(project_textile) mlazo@mlazo-pc:~/proyectos/project_textile$ ls $VIRTUAL_ENV/bin/*activate
/home/mlazo/.virtualenvs/project_textile/bin/activate /home/mlazo/.virtualenvs/project_textile/bin/postdeactivate /home/mlazo/.virtualenvs/project_textile/bin/predeactivate
/home/mlazo/.virtualenvs/project_textile/bin/postactivate /home/mlazo/.virtualenvs/project_textile/bin/preactivate
- 所以我继续在以下文件中添加以下命令:
(project_textile) mlazo@mlazo-pc:~/proyectos/project_textile$ cat /home/mlazo/.virtualenvs/project_textile/bin/postactivate
#!/bin/bash
# This hook is sourced after this virtualenv is activated.
export DJANGO_SETTINGS_MODULE=settings.develop
(project_textile) mlazo@mlazo-pc:~/proyectos/project_textile$ cat /home/mlazo/.virtualenvs/project_textile/bin/predeactivate
#!/bin/bash
# This hook is sourced before this virtualenv is deactivated.
unset DJANGO_SETTINGS_MODULE
- 最后,每次你在你的工作环境中放置你将设置“DJANGO_SETTINGS_MODULE”变量,并且每次你离开环境时它都会被销毁:
mlazo@mlazo-pc:~/proyectos/project_textile$ workon project_textile
(project_textile) mlazo@mlazo-pc:~/proyectos/project_textile$ echo $DJANGO_SETTINGS_MODULE
settings.develop
(project_textile) mlazo@mlazo-pc:~/proyectos/project_textile$ deactivate
mlazo@mlazo-pc:~/proyectos/project_textile$ echo $DJANGO_SETTINGS_MODULE
我真的希望它对处理类似事件的任何人都有帮助。
此致,
只需执行此操作即可。
设置环境变量:
DJANGO_SETTINGS_MODULE=your_settings_file_path
For eg DJANGO_SETTINGS_MODULE=mysettings.setting.base
然后运行这个命令:
pylint --load-plugins=pylint_django --rcfile your_pylint_filename
Use * to run pylint for your whole project