2

EclipseでPyDevを使用してDjangoプロジェクトを開発しています。しばらくの間、PyDevのDjangoShellはうまく機能しました。さて、そうではありません:

>>> import sys; print('%s %s' % (sys.executable or sys.platform, sys.version))
C:\Python26\python.exe 2.6.4 (r264:75708, Oct 26 2009, 08:23:19) [MSC v.1500 32 bit (Intel)]
>>> 
>>> from django.core import management;import mysite.settings as settings;management.setup_environ(settings)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: No module named mysite.settings
>>> 

開発サーバーは問題なく動作します。何が間違っているのでしょうか?

モデルモジュールも目立って存在しません:

>>> import mysite.myapp.models
Traceback (most recent call last):
  File "<console>", line 1, in <module>
ImportError: No module named mysite.myapp.models

PyDevの外部の通常のコマンドラインでは、シェルは正常に機能します。

なぜこれが起こっているのでしょうか?

4

3 に答える 3

6

単純なパスの問題のようです。これの出力は何ですか:

import sys; print sys.path

PyDevについては何も知りませんが、PYTHONPATH設定にパスを追加するための設定がどこかにある可能性があります。そうでない場合は、シェルで直接実行できます。

sys.path.insert(0, '/path/to/directory/containing/mysite/')
于 2010-05-03T20:34:23.180 に答える
3

しばらく前に、プロジェクトをDjango 1.3から移動し、ソースのルートにsettings.pyファイルを配置してから、それをアプリケーションに移動しているときに、これと同様の問題が発生しました。

たとえば、何が起こったのかというと、私は次のことをしていました。

rootOfSource / --settings.py --myapp

そして私はそれを次のように変更しました:

rootOfSource / --myapp --myapp / settings.py

また、設定ファイルを次のように変更しました。

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

ただし、os.evironにデバッグしたところ、DJANGO_SETTINGS_MODULEが期待どおりではなかったことがわかり、manage.pyを次のように変更しました。

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")
    os.environ.__setitem__("DJANGO_SETTINGS_MODULE", "myapp.settings")
    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

その後、PyDevから実行できるようになりました。

お役に立てれば。

于 2013-01-18T12:04:48.227 に答える
0

プロジェクトのプロパティ->PyDevDjangoに移動し、Django設定モジュールを設定することで、この問題を修正しました。 ここに画像の説明を入力してください

于 2017-10-28T19:47:31.267 に答える