Python 试图通过Django rest框架jwt实现Django身份验证。为什么我会得到;ValueError:模块名称为空";?
我有一个现有的、正在运行的Django应用程序,它实现了许多Django REST框架API。 现在,我尝试添加用户身份验证API,如中所述。但它不起作用 首先,我使用Python 试图通过Django rest框架jwt实现Django身份验证。为什么我会得到;ValueError:模块名称为空";?,python,django,rest,django-rest-framework,Python,Django,Rest,Django Rest Framework,我有一个现有的、正在运行的Django应用程序,它实现了许多Django REST框架API。 现在,我尝试添加用户身份验证API,如中所述。但它不起作用 首先,我使用pip安装了Django rest框架JWT。没问题 然后,我将以下块添加到我的settings.py中的REST\u框架变量中: 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.SessionAuthentication', '
pip
安装了Django rest框架JWT。没问题
然后,我将以下块添加到我的settings.py中的REST\u框架
变量中:
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
'rest_framework_jwt.authentication.JSONWebTokenAuthentication',
),
url(r'^api-token-auth/', 'rest_framework_jwt.views.obtain_jwt_token'),
最后,我在我的应用程序目录中的url.py
中添加了以下行(即:不是全局url.py
):
然后,当我启动服务器时,出现了以下错误:ValueError:Empty module name
。为什么我会出现这个错误?我如何修复它
Traceback (most recent call last):
File "./manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/core/management/__init__.py", line 399, in execute_from_command_line
utility.execute()
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/core/management/__init__.py", line 75, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/south/management/commands/__init__.py", line 10, in <module>
import django.template.loaders.app_directories
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/template/loaders/app_directories.py", line 23, in <module>
mod = import_module(app)
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/authority/__init__.py", line 2, in <module>
from authority.sites import site, get_check, get_choices_for, register, unregister
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/authority/sites.py", line 7, in <module>
from authority.permissions import BasePermission
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/authority/permissions.py", line 9, in <module>
from authority.models import Permission
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/authority/models.py", line 10, in <module>
from authority.utils import User
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/authority/utils.py", line 11, in <module>
User = get_user_class()
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/authority/utils.py", line 6, in get_user_class
return auth.get_user_model()
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 127, in get_user_model
user_model = get_model(app_label, model_name)
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/db/models/loading.py", line 271, in get_model
self._populate()
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/db/models/loading.py", line 75, in _populate
self.load_app(app_name, True)
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/db/models/loading.py", line 99, in load_app
models = import_module('%s.models' % app_name)
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/registration/models.py", line 15, in <module>
User = get_user_model()
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 127, in get_user_model
user_model = get_model(app_label, model_name)
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/db/models/loading.py", line 271, in get_model
self._populate()
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/db/models/loading.py", line 75, in _populate
self.load_app(app_name, True)
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/db/models/loading.py", line 97, in load_app
app_module = import_module(app_name)
File "/opt/virtualEnvs/myApp/lib/python2.7/site-packages/django/utils/importlib.py", line 40, in import_module
__import__(name)
ValueError: Empty module name
回溯(最近一次呼叫最后一次):
文件“/manage.py”,第10行,在
从命令行(sys.argv)执行命令
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/core/management/_init__.py”,第399行,从命令行执行
utility.execute()
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/core/management/_init__.py”,第392行,在execute中
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/core/management/_init__.py”,第272行,在fetch_命令中
klass=加载命令类(应用程序名称,子命令)
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/core/management/_init__.py”,第75行,装入命令类
模块=导入模块(“%s.management.commands.%s%”(应用程序名称,名称))
导入模块中的文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/utils/importlib.py”,第40行
__导入(名称)
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/south/management/commands/_init__.py”,第10行,在
导入django.template.loaders.app_目录
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/template/loaders/app_directories.py”,第23行,在
mod=导入模块(应用程序)
导入模块中的文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/utils/importlib.py”,第40行
__导入(名称)
文件“/opt/virtualEnvs/myApp/lib/python2.7/site-packages/authority/__-init___.py”,第2行,在
从authority.sites导入站点,获取检查,获取选择,注册,注销
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/authority/sites.py”,第7行,在
从authority.permissions导入BasePermission
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/authority/permissions.py”,第9行,在
从authority.models导入权限
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/authority/models.py”,第10行,在
从authority.utils导入用户
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/authority/utils.py”,第11行,在
User=get\u User\u class()
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/authority/utils.py”,第6行,在get\u user\u类中
返回auth.get\u user\u model()
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/contrib/auth/__init__;.py”,第127行,在get_user_模型中
用户\模型=获取\模型(应用\标签、模型\名称)
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/db/models/loading.py”,第271行,在get_模型中
自我.()
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/db/models/loading.py”,第75行,在
self.load\u应用程序(应用程序名称,True)
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/db/models/loading.py”,第99行,在load_应用程序中
模型=导入模块(“%s.models”%app\u name)
导入模块中的文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/utils/importlib.py”,第40行
__导入(名称)
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/registration/models.py”,第15行,在
User=get\u User\u model()
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/contrib/auth/__init__;.py”,第127行,在get_user_模型中
用户\模型=获取\模型(应用\标签、模型\名称)
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/db/models/loading.py”,第271行,在get_模型中
自我.()
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/db/models/loading.py”,第75行,在
self.load\u应用程序(应用程序名称,True)
文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/db/models/loading.py”,第97行,在load_应用程序中
应用程序模块=导入应用程序模块(应用程序名称)
导入模块中的文件“/opt/virtualEnvs/myApp/lib/python2.7/site packages/django/utils/importlib.py”,第40行
__导入(名称)
ValueError:模块名称为空
您使用的是什么版本的Django?似乎支持的最低版本是1.4
Django version=1.6.5在您的virtualenv中,您可以从pip列表
提供信息吗?以下是pip列表
的输出:首先,此值错误通常来自settings.py
中的键入错误,但此堆栈跟踪在Django中最接近数据库模型代码的位置终止。尝试执行/manage.py syncdb
,看看问题是否仍然存在?