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 サイトでもまともな答えは見つかりませんでした。