4

Django アプリでスクリプトを実行しようとすると、インポート エラーが発生します。

設定ファイルに関連しています。

エラー:

  File "bookd/get_data.py", line 10, in <module>
    from models import UserProfile
  File "/home/hiccup/DataProjects/goodread/bookda/bookd/models.py", line 3, in <module>
    from django.db import models
  File "/usr/local/lib/python2.7/dist-packages/django/db/__init__.py", line 14, in <module>
    if not settings.DATABASES:
  File "/usr/local/lib/python2.7/dist-packages/django/utils/functional.py", line 276, in __getattr__
    self._setup()
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 42, in _setup
    self._wrapped = Settings(settings_module)
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 89, in __init__
    raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
ImportError: Could not import settings 'bookda.settings' (Is it on sys.path?): No module named bookda.settings

私はそれが非常に基本的なエラーであることを知っており、それを解決するための回答がありましたが、設定が機能するようにパスを追加しようとしても、解決できません。そして、私のシステム上の他のdjangoアプリが完全に正常に動作するのはかなりイライラします.

階層:

bookda/settings.py
bookda/books/script.py

script.py の実行中にエラーが発生します。

4

2 に答える 2

6

Django モデルを使用するカスタム スクリプトを作成しようとしている場合は、Django がプロジェクト パッケージを見つけられるようにする必要があります。これをスクリプトの先頭に置きますget_data.py...

import sys

sys.path.append('/home/hiccup/DataProjects/goodread')

bookda...その後、モジュールをインポートできるはずです。

また、設定ファイルの場所を Django に伝える必要がある場合もあります。その場合は...

import sys
import os

sys.path.append('/home/hiccup/DataProjects/goodread')
os.environ['DJANGO_SETTINGS_MODULE'] = 'bookda.settings'

# Now we can import Django stuff
from models import UserProfile
...
于 2013-05-05T08:44:51.027 に答える
3

settings.py に構文エラーまたはその他のエラーがあり、実行できない可能性があります。状況によっては、インポート エラーが発生することがあります。

ファイルの最初に入れると、import pdb;pdb.set_trace()デバッグできます。デバッガに入らない場合、Python は本当にファイルを見つけられませんでした。

于 2013-05-05T08:42:29.847 に答える