django-admin 运行服务器错误 [英] django-admin runserver error
问题描述
我为 python 2.7 设置了 virtualenv
I set virtualenv for python 2.7
16% source Work/Django/env/bin/activate
下一步创建项目
django-admin startproject myproject
创建应用
cd myproject
django-admin startapp contact
并尝试运行开发服务器
16% django-admin runserver
我收到一个错误
回溯(最近一次调用最后一次):文件/home/dima/Work/Django/env/bin/django-admin",第 11 行,在sys.exit(execute_from_command_line())文件/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/core/management/init.py",第353行,在execute_from_command_line实用程序.execute()文件/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/core/management/init.py",第345行,执行self.fetch_command(subcommand).run_from_argv(self.argv)文件/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/core/management/init.py",第 195 行,在 fetch_commandklass = load_command_class(app_name, subcommand)文件/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/core/management/init.py",第 39 行,在 load_command_classmodule = import_module('%s.management.commands.%s' % (app_name, name))文件/usr/lib/python2.7/importlib/init.py",第 37 行,在 import_module 中导入(名称)文件/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py",第16行,在从 django.db.migrations.executor 导入 MigrationExecutor文件/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/db/migrations/executor.py",第7行,在从 .loader 导入 MigrationLoader文件/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/db/migrations/loader.py",第 10 行,在从 django.db.migrations.recorder 导入 MigrationRecorder文件/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/db/migrations/recorder.py",第12行,在类迁移记录器(对象):文件/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/db/migrations/recorder.py",第26行,在MigrationRecorder类迁移(模型.模型):文件/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/db/migrations/recorder.py",第 27 行,在迁移中app = models.CharField(max_length=255)文件/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/db/models/fields/init.py",第1072行,在<强>初始化super(CharField, self).init(*args, **kwargs)文件/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/db/models/fields/init.py",第166行,<强>初始化self.db_tablespace = db_tablespace 或 settings.DEFAULT_INDEX_TABLESPACE文件/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/conf/init.py",第 55 行,getattr强>self._setup(name)文件/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/conf/init.py",第 41 行,在 _setup% (desc, ENVIRONMENT_VARIABLE))django.core.exceptions.ImproperlyConfigured:请求设置 DEFAULT_INDEX_TABLESPACE,但未配置设置.在访问设置之前,您必须定义环境变量 DJANGO_SETTINGS_MODULE 或调用 settings.configure().如何修复此错误?
Traceback (most recent call last): File "/home/dima/Work/Django/env/bin/django-admin", line 11, in sys.exit(execute_from_command_line()) File "/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/core/management/init.py", line 353, in execute_from_command_line utility.execute() File "/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/core/management/init.py", line 345, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/core/management/init.py", line 195, in fetch_command klass = load_command_class(app_name, subcommand) File "/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/core/management/init.py", line 39, in load_command_class module = import_module('%s.management.commands.%s' % (app_name, name)) File "/usr/lib/python2.7/importlib/init.py", line 37, in import_module import(name) File "/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 16, in from django.db.migrations.executor import MigrationExecutor File "/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/db/migrations/executor.py", line 7, in from .loader import MigrationLoader File "/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/db/migrations/loader.py", line 10, in from django.db.migrations.recorder import MigrationRecorder File "/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 12, in class MigrationRecorder(object): File "/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 26, in MigrationRecorder class Migration(models.Model): File "/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/db/migrations/recorder.py", line 27, in Migration app = models.CharField(max_length=255) File "/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/db/models/fields/init.py", line 1072, in init super(CharField, self).init(*args, **kwargs) File "/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/db/models/fields/init.py", line 166, in init self.db_tablespace = db_tablespace or settings.DEFAULT_INDEX_TABLESPACE File "/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/conf/init.py", line 55, in getattr self._setup(name) File "/home/dima/Work/Django/env/local/lib/python2.7/site-packages/django/conf/init.py", line 41, in _setup % (desc, ENVIRONMENT_VARIABLE)) django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. How fix this error?
推荐答案
如果你看看 manage.py
脚本做了什么(这个脚本是在 myproject
当您运行 django-admin startproject myproject
时,它会导出环境变量 DJANGO_SETTINGS_MODULE
,然后运行 django-admin
(好吧,它做到了通过 django.core
但它几乎可以做到这一点.
If you look at what the manage.py
script does (this script was created inside the myproject
directory when you ran django-admin startproject myproject
), it exports the environment variable DJANGO_SETTINGS_MODULE
and then runs django-admin
(well, it does it through django.core
but it does pretty much that).
django-admin
需要知道项目设置的 python 模块,并且该信息存在于该环境变量中.
django-admin
needs to know the python module of the settings for your project, and that information is present in that environment variable.
因此,在 myproject
目录中,您应该运行:
Therefore, inside the myproject
directory, you shall either run:
python manage.py runserver
并且 manage.py
脚本将为您进行环境设置,或者您可以强制 django-admin
读取设置位置从命令行:
and the manage.py
script will do the environment setup for you, or you can force django-admin
to read the settings location from the command line:
django-admin runserver --pythonpath=. --settings="myproject.settings"
如果您将项目目录包含在默认 pyhton 路径中,则不需要 --pythonpath
开关.
The --pythonpath
switch is not needed if you included your project directory on the default pyhton path.
这篇关于django-admin 运行服务器错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!