2016-09-15 11 views
1

Django 1.9.1をPython 3.5.2で使用していますが、Djangoモデルを使用するPythonスクリプトを実行する際に問題があります。django.core.exceptions.ImproperlyConfigured:DEFAULT_INDEX_TAB LESPACEの設定を要求されましたが、設定が構成されていません

C:\Users\admin\trailers>python load_from_api.py 
Traceback (most recent call last): 
    File "load_from_api.py", line 6, in <module> 
    from movies.models import Movie 
    File "C:\Users\admin\trailers\movies\models.py", line 5, in <module> 
    class Genre(models.Model): 
    File "C:\Users\admin\trailers\movies\models.py", line 6, in Genre 
    id = models.CharField(max_length=10, primary_key=True) 
    File "C:\Program Files (x86)\Python35-32\lib\site-packages\django\db\models\fi 
elds\__init__.py", line 1072, in __init__ 
    super(CharField, self).__init__(*args, **kwargs) 
    File "C:\Program Files (x86)\Python35-32\lib\site-packages\django\db\models\fi 
elds\__init__.py", line 166, in __init__ 
    self.db_tablespace = db_tablespace or settings.DEFAULT_INDEX_TABLESPACE 
    File "C:\Program Files (x86)\Python35-32\lib\site-packages\django\conf\__init_ 
_.py", line 55, in __getattr__ 
    self._setup(name) 
    File "C:\Program Files (x86)\Python35-32\lib\site-packages\django\conf\__init_ 
_.py", line 41, in _setup 
    % (desc, ENVIRONMENT_VARIABLE)) 
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TAB 
LESPACE, but settings are not configured. You must either define the environment 
variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing s 
ettings. 

ここにスクリプトです:

#!/usr/bin/env python 
import os 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "trailers.settings") 
os.environ["DJANGO_SETTINGS_MODULE"] = "trailers.settings" 
import django 
django.setup() 
import tmdbsimple as tmdb 
from movies.models import Movie 

#some code... 

私は本当に間違っているかを把握することはできません。どんな助けもありがとう!

答えて

1

これを追加

python manag.py shell

、その後

exec(open('filename').read())

ngをうまく動作するように見えたという。

0

私はDjango Custom Management Commandsを使用することをお勧めします - 彼らは、彼らはあなたの設定、自分の環境を使用して使用して本当に簡単です、あなたはパラメータを渡すことができますし、あなたはそれを呼び出すあなたが次に--help

を使用できるように、また、あなたはヘルプ文字列を書き込むことができます./manage.py my_custom_command

またはあなたは自分のスクリプトを実行したい場合、私は、スクリプトを変更することなく、それを実行する方法を考え出し、それはUSIによってだスクリプトに

project_path = '/home/to/your/trailers/project/src' 
if project_path not in sys.path: 
    sys.path.append(project_path) 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "trailers.common") 

import django 
django.setup() 
関連する問題