我在我的XP电脑上安装了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引擎中的数据库中插入一行的小程序:
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 Path(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'目录中)时,每个人都可以正常工作并在approproate表中插入一行。关键是我想将我的代码放在app目录中(在本例中为'mbtiapp'),因为这是它所属的地方,而不是在一般项目目录中。
我知道可以找到很多类似的问题,但是在网上和django网站上都找不到合适的答案。
答案 0 :(得分:0)
这是导入问题。您可以通过更改import语句快速修复它。将mbtiapp.models
替换为models
即可。