2015-05-06 97 views
3

我经历Django的教程(1.8版),当我尝试使用CMD python manage.py migrateDjango的manage.py迁移导入错误

我最终得到下面的导入错误创建INSTALLED_APPS数据库:

File "manage.py", line 10, in <module> 
execute_from_command_line(sys.argv) 
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 338, in execute_from_command_line 
utility.execute() 
File "C:\Python27\lib\site-packages\django\core\management\__init__.py", line 303, in execute 
settings.INSTALLED_APPS 
File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 48, in __getattr__ 
self._setup(name) 
File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 44, in _setup 
self._wrapped = Settings(settings_module) 
File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 92, in __init__ 
mod = importlib.import_module(self.SETTINGS_MODULE) 
File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module 
__import__(name) 
ImportError: Import by filename is not supported. 

我DJANGO_SETTINGS_MODULE链接到正确的位置...Django\mysite\mysite\settings.py

这里是我的settings.py:

# Build paths inside the project like this: os.path.join(BASE_DIR, ...) 
import os 

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 


# Quick-start development settings - unsuitable for production 
# See https://docs.djangoproject.com/en/1.8/howto/deployment/checklist/ 

# SECURITY WARNING: keep the secret key used in production secret! 
SECRET_KEY = '[email protected]%[email protected]@oq+o=e%=d#$z1je=o)c98cdbm3ax6h1fr%m7' 

# SECURITY WARNING: don't run with debug turned on in production! 
DEBUG = True 

ALLOWED_HOSTS = [] 


# Application definition 

INSTALLED_APPS = (
'django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
) 

MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware', 
'django.middleware.security.SecurityMiddleware', 
) 

ROOT_URLCONF = 'mysite.urls' 

TEMPLATES = [ 
{ 
    'BACKEND': 'django.template.backends.django.DjangoTemplates', 
    'DIRS': [], 
    'APP_DIRS': True, 
    'OPTIONS': { 
     'context_processors': [ 
      'django.template.context_processors.debug', 
      'django.template.context_processors.request', 
      'django.contrib.auth.context_processors.auth', 
      'django.contrib.messages.context_processors.messages', 
     ], 
    }, 
}, 
] 

WSGI_APPLICATION = 'mysite.wsgi.application' 


# Database 
# https://docs.djangoproject.com/en/1.8/ref/settings/#databases 

DATABASES = { 
'default': { 
    'ENGINE': 'django.db.backends.sqlite3', 
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 
} 
} 


# Internationalization 
# https://docs.djangoproject.com/en/1.8/topics/i18n/ 

LANGUAGE_CODE = 'en-us' 

TIME_ZONE = 'America/New_York' 

USE_I18N = True 

USE_L10N = True 

USE_TZ = True 


# Static files (CSS, JavaScript, Images) 
# https://docs.djangoproject.com/en/1.8/howto/static-files/ 

STATIC_URL = '/static/' 
+0

什么是你的'DJANGO_SETTINGS_MODULE'的确切值,你在哪里把它设置? –

+0

'DJANGO_SETTINGS_MODULE = C:\ Users \ mspringer \ Google Drive \ Python \ Django \ mysite \ mysite \ settings.py' 它是在我的环境变量 – Mike49

回答

8

的错误是没有什么实际的INSTALLED_APPS;如果您注意到,错误发生在mod = importlib.import_module(self.SETTINGS_MODULE)上,这意味着它无法导入您的设置模块。

在这种情况下,问题是您的DJANGO_SETTINGS_MODULE需要是点状Python路径,而不是文件系统路径。我最适合你需要的猜测是:

DJANGO_SETTINGS_MODULE="mysite.mysite.settings" 
+0

这改正了它。我不得不更改'DJANGO_SETTINGS_MODULE =“mysite.settings”' – Mike49

+0

一个额外的评论,事实证明,我甚至不需要在环境变量中定义'DJANGO_SETTINGS_MODULE'。 manage.py模块将其设置为:'os.environ.setdefault(“DJANGO_SETTINGS_MODULE”,“mysite.settings”)' – Mike49

0
ImportError: Import by filename is not supported. 

看起来您正在尝试导入应用程序并指定文件名而不是名称。你能发布settings.py吗? 你必须写这样的事:

INSTALLED_APPS = (

... snip ... 

    'polls', 
) 

,而不是像这样:

INSTALLED_APPS = (

... snip ... 

    'polls.py', 
) 
+0

中定义的我没有改变Django构建的默认值: INSTALLED_APPS =( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', ' django.contrib.staticfiles', )' – Mike49

+0

hm,好的。在教程的哪一点你卡住了? – aronadaal

+0

在[此步骤](https://docs.djangoproject.com/zh/1/8/intro/tutorial01/)“这些应用程序默认情况下包含在常见情况下方便使用 某些应用程序使用至少有一个数据库表,所以我们需要在数据库中创建表,然后才能使用它们。运行以下命令:“ '$ python manage.py migrate' – Mike49