1

次の設定の次のコードがあります。しかし、設定で常にエラーが発生します... MySQLのバージョンは5で、Djangoは最後のバージョンです。パイソン3.7

#!/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)

これは私のスクリプトです:

# 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",
    ^
4

1 に答える 1

2

myScript.py の 5 行目には#、行をコメントアウトする行があります。すると、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行目を削除するだけでうまくいくかもしれません。

次回は、構文エラーを自分で解決してみてください。スタック オーバーフローに投稿するよりもはるかに高速です。

于 2012-05-07T12:35:17.477 に答える