2016-10-19 9 views
0

I以下の構造を有する:ジャンゴはImportErrorませんモジュールの名前x.settings

mysite 
    -> manage.py 
    -> mysite (again) 
     -> __init__.py 
     -> wsgi.py 
     -> settings.py 
     etc 
    -> myapp 
     -> __init__.py    
     -> myscript.py 
     -> models.py 
     etc 

私はmyappのからスクリプトを実行し、私は必要があります(それは例えば、データベース内のものを入れて、myappに関連のことを行います)行うこと

from models import MyModelにできるようにする。私はmyappのディレクトリでこれを行う場合でも、私が得る:(?私は推測ルート)、それは例えばmanage.pyと同じディレクトリにディレクトリツリーさらにアップだといないので、私は一種の理解

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    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 __getattr__ 
    self._setup(name) 
    File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 41, in _setup 
    self._wrapped = Settings(settings_module) 
    File "C:\Python27\lib\site-packages\django\conf\__init__.py", line 97, in __init__ 
    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 mysite.settings 

manage.pyがあるmysiteでPythonインタプリタを発行すると、このエラーは発生しません。

スクリプトをmyappに配置しても、そのディレクトリからdjango.setup()を引き続き使用できるようにするにはどうすればよいですか?

+0

「。」を使用してください。 'models import MyModel'の前にモデルが' .models import MyModel'である必要があります –

+1

Djangoを使用していてアプリケーションのコンテキスト内でいくつかのスクリプトを実行する必要がある場合、管理コマンドを使用してください:https:// docs .djangoproject.com/ja/1.10/howto/custom-management-commands / – IanAuld

答えて

1

スクリプトを実行するときに、プロジェクトのルートがPythonパスになっていることを確認する必要があります。このようなものが助けになるかもしれません。

 
import os 
import sys 
projpath = os.path.dirname(__file__) 
sys.path.append(os.path.join(projpath, '..')) 
関連する問題