我正在尝试为django-rest-framework做出贡献,我运行isort
后认证文件中的导入是这样的(我添加了import 6):
from __future__ import unicode_literals
import base64
import six
from django.contrib.auth import authenticate, get_user_model
from django.middleware.csrf import CsrfViewMiddleware
from django.utils.translation import ugettext_lazy as _
from rest_framework import HTTP_HEADER_ENCODING, exceptions
当我运行./runtests --lintonly
时,它会通过所有测试但是当我运行tox
时,它会给我这个错误:
py27-lint runtests: commands[0] | ./runtests.py --lintonly
Running flake8 code linting
flake8 passed
Running isort code checking
ERROR: /home/nitesh/open_source/django-rest-framework/rest_framework/authentication.py Imports are incorrectly sorted.
isort failed: Some modules have incorrectly ordered imports. Fix by running `isort --recursive .`
ERROR: InvocationError: '/home/nitesh/open_source/django-rest-framework/runtests.py --lintonly'
答案 0 :(得分:1)
从我在REST框架源代码中看到的内容(例如here),six
导入了django.utils
。将import six
替换为from django.utils import six
可以解决isort
警告:
from __future__ import unicode_literals
import base64
from django.utils import six
from django.contrib.auth import authenticate, get_user_model
from django.middleware.csrf import CsrfViewMiddleware
from django.utils.translation import ugettext_lazy as _
from rest_framework import HTTP_HEADER_ENCODING, exceptions
答案 1 :(得分:1)
我遇到了类似的错误(Imports are incorrectly sorted
)。
isort
在直接投放时感到高兴,在通过tox
投放时失败。 isort
抱怨的行是:
import pytest
from my_module import MyThing
isort
,直接运行时,知道我的模块my_module
是第一方(我自己的)代码,而通过tox
它没有。因此,当直接运行时,我很满意pytest
导入和导入之间的空行,但是通过tox
它不希望看到空行,因为pytest
和{ {1}}被解释为第三方导入。
解决方案是将此行添加到我的my_module
:
setup.cfg