我已经在我的 XP 电脑上安装了 python2.7 和 django 1.3.1。我也在运行一个 MySQL 数据库。受第一个 django 应用程序教程的启发,我创建了一个项目 'mysite' 和一个应用程序 'mbtiapp'。目录结构如下(我几乎都省略了):
mysite
mysite\mbtiapp
mysite\mbtiapp\models.py
mysite\mbtiapp\testMySQL.py
如您所见,有一个小 Python 脚本“testMySQL.py”。这是一个在 MySQL 引擎的数据库中插入一行的小程序:
测试MySQL.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
窗口路径:
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 放在上面的一个目录中(直接在“mysite”目录中)时,一切正常,并且在适当的表中插入了一行。关键是我想将我的代码放在应用程序目录中(在本例中为“mbtiapp”),因为这是它所属的位置,而不是一般项目目录中。
我知道可以找到很多类似的问题,但无论是在网络上,还是在 django 网站上,我都没有找到合适的答案。