2017-01-27 3 views
1

、私はと呼ばれるテストデータとSQLiteのデータベースを作成するためのスクリプトを作成しました:
~/Workspace/wad2/tango_with_django_project/populate_rango.py
エラーを受け取った後、私は直接コピー&ペーストするスクリプトを本から試しても、次のエラー受信:ジャンゴはImportError:Djangoのチュートリアルブックではタンゴの章5の終わり近くからのモジュールの名前tango_with_django_project.settings

H:\Workspace\wad2\tango_with_django_project>python populate_rango.py 
Traceback (most recent call last): 
    File "populate_rango.py", line 7, in <module> 
    django.setup() 
    File "C:\Python27\lib\site-packages\django\__init__.py", line 22, in setup 
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
    File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 53, in __ge 
tattr__ 
    self._setup(name) 
    File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 41, in _set 
up 
    self._wrapped = Settings(settings_module) 
    File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 97, in __in 
it__ 
    mod = importlib.import_module(self.SETTINGS_MODULE) 
    File "C:\Python27\lib\importlib\__init__.py", line 37, in import_module 
    __import__(name) 
ImportError: No module named tango_with_django_project.settings 

populate_rango.py

models.py

from __future__ import unicode_literals 
from django.db import models 

class Category(models.Model): 
    name = models.CharField(max_length=128, unique=True) 
    views = models.IntegerField(default=0) 
    likes = models.IntegerField(default=0) 

    class Meta: 
     verbose_name_plural = 'Categories' 

    def __str__(self): 
     return self.name 

class Page(models.Model): 
    category = models.ForeignKey(Category) 
    title = models.CharField(max_length=128) 
    url = models.URLField() 
    views = models.IntegerField(default=0) 

    def __str__(self): 
     return self.title 

settings.py(関連するコード)

import os 

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
TEMPLATE_DIR = os.path.join(BASE_DIR, 'tango_with_django_project', 'templates') 
STATIC_DIR = os.path.join(BASE_DIR, 'tango_with_django_project', 'static') 
MEDIA_DIR = os.path.join(BASE_DIR, 'tango_with_django_project', 'media') 

場所

~/Workspace/wad2/manage.py 
~/Workspace/wad2/tango_with_django_project/populate_rango.py 
~/Workspace/wad2/tango_with_django_project/settings.py 

番目であるかもしれないことをだれにも知っていますこれらのエラーの原因? これはよくある原因はフォルダ名が間違っているようですが、私のスクリプトはフォルダにあり、私のos.environ.setdefault行に指定されています。 他のファイルがあれば、追加することができます。

+0

でのpythonのパスに親ディレクトリを追加することができます。 – Alasdair

+0

@Alasdairどのようにですか?あなたのsettings.pyファイルや、特に端末の出力が好きですか? – Paradox

+0

ファイルの*レイアウト*を表示していません。 'settings.py'と' populate_rango.py'の場所です。 – Alasdair

答えて

5

Djangoプロジェクトでtango_with_django_project.settingsという設定をロードするには、wad2がPythonパス上にある必要があります。

populate_rango.pywad2/tango_with_django_project/からwad2に移動するのが一番簡単な解決方法です。

また、あなたはあなたのプロジェクトのレイアウトを表示してくださいpopulate_rango.py

import sys 
sys.path.append('..') 

import os 
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 
         'tango_with_django_project.settings') 
関連する問題