2012-05-07 77 views
1

我有以下代碼以下設置。但我總是在我的設置中出現錯誤... MySQL版本是5,Django是最新版本。 的Python 3.7Django setting.py錯誤

#!/usr/bin/env python 
import os 
import sys 
sys.path.append("/home/test") 


if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "standAlone.myScript") 
    from django.core.management import execute_from_command_line 
    execute_from_command_line(sys.argv) 

這是我myScript的:

# settings.py 
from django.conf import settings 


#settings.configure(
    DATABASE_ENGINE = " ", 
    DATABASE_NAME  = " ", 
    DATABASE_USER  = " ", 
    DATABASE_PASSWORD = " ", 
    DATABASE_HOST  = " ", 
    DATABASE_PORT  = " ", 
    # INSTALLED_APPS  = ("myApp") 
) 

from django.db import models 
from myApp.models import * 

這是我的settings.py:

DATABASE_ENGINE = 'django.db.backends.mysql' 
DATABASE_NAME  = 'DATABASE_NAME' 
DATABASE_USER  = '****' 
DATABASE_PASSWORD = '****' 
DATABASE_HOST  = '127.0.0.1' 
DATABASE_PORT  = '3306' 

我有以下錯誤:

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/home/test/django/core/management/__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "/home/test/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/home/test/django/core/management/__init__.py", line 252, in fetch_command 
    app_name = get_commands()[subcommand] 
    File "/home/test/django/core/management/__init__.py", line 101, in get_commands 
    apps = settings.INSTALLED_APPS 
    File "/home/test/django/utils/functional.py", line 184, in inner 
    self._setup() 
    File "/home/test/django/conf/__init__.py", line 42, in _setup 
    self._wrapped = Settings(settings_module) 
    File "/home/test/django/conf/__init__.py", line 93, in __init__ 
    mod = importlib.import_module(self.SETTINGS_MODULE) 
    File "/home/test/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/home/test/standAlone/myScript.py", line 6 
    DATABASE_ENGINE = "django.db.backends.mysql", 
    ^
+0

您正在使用哪個版本的django?你說最新的,你的意思是最新的正式版本(1.4)還是你使用git倉庫的實驗1.5代碼? –

+0

Aslo,我假設你的意思是Python 2.7,因爲3.7不存在?你可能想糾正這一點。 –

+0

你巧妙地沒有引用實際的例外。我認爲它是'IndentationError'。 –

回答

2

在myScr中的第5行ipt.py你有一個#其中註釋了一條線。然後,我認爲行6 DATABASE_ENGINE = " ",將是一個語法錯誤(儘管回溯似乎沒有包括這一點)。

還有其他問題。導入東西的方式會導致settings.py數據庫設置被myScript.py中第5行以後的空值覆蓋。除非這是你想要的,一個正確的方式做到這一點(在myScript.py)是:

# settings.py 
from django.conf import settings 

from django.db import models 
from myApp.models import * 

也就是說,指定settings.py的設置,不會覆蓋他們myScript.py。

如果您確實需要覆蓋設置,無論出於何種原因,那麼只需刪除第5行的#,而且事情可能會奏效。

下一次,請嘗試自己解決語法錯誤,它會比張貼到堆棧溢出要快得多。