ren*_*iii 10 python django mysql-python
我想将MySQL数据库连接到我的django项目,但它抛出一个错误:
"django.core.exceptions.ImproperlyConfigured:请求设置USE_I18N,但未配置设置.您必须先定义环境变量DJANGO_SETTINGS_MODULE或在访问设置之前调用settings.configure()."
跟踪:
(myenv) LIBINGLADWINs-MacBook-Air:libinrenold$ django-admin dbshell
Traceback (most recent call last):
File "/Users/libinrenold/Desktop/djangoworks/myenv/bin/django-admin", line 11, in <module>
sys.exit(execute_from_command_line())
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
utility.execute()
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/core/management/__init__.py", line 356, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/core/management/base.py", line 283, in run_from_argv
self.execute(*args, **cmd_options)
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/core/management/base.py", line 322, in execute
saved_locale = translation.get_language()
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/utils/translation/__init__.py", line 195, in get_language
return _trans.get_language()
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/utils/translation/__init__.py", line 59, in __getattr__
if settings.USE_I18N:
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/conf/__init__.py", line 56, in __getattr__
self._setup(name)
File "/Users/libinrenold/Desktop/djangoworks/myenv/lib/python3.6/site-packages/django/conf/__init__.py", line 39, in _setup
% (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting USE_I18N, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
Run Code Online (Sandbox Code Playgroud)
settings.py.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test',
'USER': 'user',
'PASSWORD': 'root',
'HOST':'',
'PORT': '',
}
}
Run Code Online (Sandbox Code Playgroud)
Ric*_*ves 17
我遇到这个问题是因为我在输入后尝试导入 django 脚本
python
Run Code Online (Sandbox Code Playgroud)
代替
python manage.py shell
Run Code Online (Sandbox Code Playgroud)
呃!
meh*_*hdi 13
我也遇到过,我现在才发现是无意的。
我在 PyCharm IDE 顶部更改了“配置”,因此在尝试运行 django 代码时 pycharm 感到困惑。正是当我尝试使用快捷方式运行服务器时弹出的问题,但是当我使用终端运行服务器时,我发现 django 代码没有任何问题并且 pycharm 找不到设置。
因此,请检查顶部 pycharm 的 ide 中的“配置”,也许您会犯同样的错误:)
我是 Django 新手,所以如果我的回答很愚蠢,请保持冷静。

rar*_*iru 12
您必须定义相关变量以显示settings.py文件所在的位置:
export DJANGO_SETTINGS_MODULE=mysite.settings
Run Code Online (Sandbox Code Playgroud)
这是相关的docs条目:
使用Django时,必须告诉它所使用的设置。通过使用环境变量DJANGO_SETTINGS_MODULE来执行此操作。
DJANGO_SETTINGS_MODULE的值应采用Python路径语法,例如mysite.settings。请注意,设置模块应位于Python导入搜索路径上。
如果您使用的是virtualenv(这是最佳做法),则可以将相关export命令粘贴到文件中<path-to-virtualenv>/bin/activate
当我运行 unittest 时,我在 Django==3.2 和 djangorestframework==3.12.4 (2021/04) 中遇到了同样的错误。就我而言,python manage.py test工作正常,但我无法直接运行或调试特定应用程序中的测试模块,并且出现此错误:
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
Run Code Online (Sandbox Code Playgroud)
首先,我将 django 项目根添加到sys.path. 然后我添加DJANGO_SETTINGS_MODULE到环境变量中以解决项目设置根目录并调用Djangosetup函数。这是我的代码:
from os import path, environ
from sys import path as sys_path
from django import setup
sys_path.append(<path to django setting.py>)
environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_project.settings')
setup()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23398 次 |
| 最近记录: |