0

XP PCにpython2.7とdjango 1.3.1をインストールしました。また、MySQL データベースも実行しています。最初の django アプリ チュートリアルに触発されて、アプリケーション「mbtiapp」を含むプロジェクト「mysite」を作成しました。ディレクトリ構造は次のとおりです(ほとんどすべて省略しています)。

mysite  
mysite\mbtiapp  
mysite\mbtiapp\models.py  
mysite\mbtiapp\testMySQL.py  

ご覧のとおり、小さな Python スクリプト「testMySQL.py」があります。これは、MySQL エンジンのデータベースに行を挿入する小さなプログラムです。

testMySQL.py

from mbtiapp.models import InterestRate

i = InterestRate()
i.maturity_number = 2
i.maturity_unit = 'Y'
i.currency = 'USD'
i.rate = 2.8
i.save()

関連する可能性があるいくつかの設定:

  • Windows 環境変数DJANGO_SETTINGS_MODULE=settings

  • Windows パス:C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\QuickTime\QTSystem\;c:\jmbat;c:\MinGW\bin;c:\python27;c:Django-1.3.1;c:Django-1.3.1\django\bin

  • Python パス (sys.path):'C:\\jmv_docs\\Dropbox\\python-programming\\projects\\django\\mysite', 'C:\\WINDOWS\\system32\\python27.zip', 'c:\\python27\\DLLs', 'c:\\python27\\lib', 'c:\\python27\\lib\\plat-win', 'c:\\python27\\lib\\lib-tk', 'c:\\python27', 'c:\\python27\\lib\\site-packages', 'c:\\python27\\lib\\site-packages\\wx-2.8-msw-unicode'


質問

上記のように mbtiapp から testMySQL.py を実行すると、次のようになります。

Traceback (most recent call last):  
  File "mbtiapp\testMySQL.py", line 1, in <module>  
    from mbtiapp.models import InterestRate  
ImportError: No module named mbtiapp.models  

ただし、testMySQL.py を 1 つ上のディレクトリ (「mysite」ディレクトリに直接配置) に配置すると、すべてが正常に機能し、適切なテーブルに行が挿入されます。ポイントは、一般的なプロジェクト ディレクトリではなく、アプリ ディレクトリ (この場合は「mbtiapp」) にコードを配置することです。

似たような質問がたくさんあることは承知していますが、Web でも django サイトでもまともな答えは見つかりませんでした。

4

1 に答える 1

0

これはインポートの問題です。import ステートメントを変更することで、すぐに修正できます。に置き換えるmbtiapp.modelsmodels動作します。

于 2012-04-06T08:26:37.413 に答える