Django 导入错误
我创建了自己的Django应用,目录结构如下:
/appname
__init__.py
models.py
/submodule1
__init__.py
a.py
在a.py
文件里,我有以下的导入语句:
from ..models import Something
如果我的/appname
文件夹在/djangoproject
文件夹里,这样是可以正常工作的。但是当我通过自己写的setup.py
把这个应用安装到Python的site-packages目录时,就出现了问题,a.py
无法再导入Something
,并出现了以下错误:
ImportError: cannot import name Something
这是我的setup.py文件:
from distutils.core import setup
setup(name='appname',
version='0.1',
packages=['appname', 'appname.contrib'],
)
2 个回答
3
在 /submodule1 文件夹里放一个空文件,名字叫 __init__.py
,这样 Python 就能把它当作一个模块来识别。这应该会有帮助。在 /appname 文件夹里也要放一个 __init__.py
文件。
11
结果发现这是一个循环导入错误。也就是说,models.py
文件在引入 a.py
文件,而 a.py
文件又在引入 models.py
文件。
打破这个循环后,导入的问题就解决了,但现在是时候弄清楚如何在 Python 中实现懒惰计算了 :-)