症状:
无法导入tinycomm.views。错误为:没有名为models的模块
代码行:
from tinycomm.models import *
项目结构:
/tinycomms
/tinycomm
models.py
views.py
etc.
/other apps.
论
Mac OS X
在开发中,我可以通过放置tinycomms.tinycomm.models来解决这个问题,然后在其他地方弹出另一个类似的错误。我通过改变应用程序中模型和表单的大约10条路径(更多的路径和tinycomm.module一样)来实现开发工作,每次路径失效时都要改变。
我上传到一个Ubuntu生产服务器,遇到了同样的问题,只有全名不能解决这个问题。
这个应用程序已经运行了几个月了,我能想到的唯一的主要变化是安装
Aptana Jaxer
在MacOSX上,但由于问题也存在于生产中,我不确定这是问题所在。
另一个更大的改变是将应用程序文件夹名从“web”改为“tinycomm”,但随着开发中的完整路径修复,它开始工作,所以我也不确定这是什么原因。
以下是我尝试过的事情:
-
它说找不到的所有文件肯定都应该在哪里
-
初始化
.py应该在任何地方
-
添加到任何地方的路径/home/project_dir,/home/project_dir/tinycomms,/home/project_dir/tinycomms/tinycomm
-
尝试删除所有这些路径
-
尝试一个接一个地删除所有的应用程序-它抱怨的模块发生了变化,但是基本的
No module named x
保持不变。
-
删除所有中间件等。
-
升级至Django 1.2
以下是完整输出:
Environment:
Request Method: GET
Request URL: http://127.0.0.1:8004/
Django Version: 1.2 alpha 1
Python Version: 2.5.2
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'tinycomms_tagging',
'tinycomm']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django_authopenid.middleware.OpenIDMiddleware')
Traceback:
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/handlers/base.py" in get_response
90. request.path_info)
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/urlresolvers.py" in resolve
222. sub_match = pattern.resolve(new_path)
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/urlresolvers.py" in resolve
129. return self.callback, args, kwargs
File "/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/core/urlresolvers.py" in _get_callback
138. raise ViewDoesNotExist, "Could not import %s. Error was: %s" % (mod_name, str(e))
Exception Type: ViewDoesNotExist at /
Exception Value: Could not import tinycomm.views. Error was: No module named models
感谢您对下一步尝试什么的任何建议!
Tinycomm的内容/
初始化
Py:
from django.utils.translation import ugettext as _
from tinycomms_tagging.managers import ModelTaggedItemManager, TagDescriptor
VERSION = (0, 3, 'pre')
class AlreadyRegistered(Exception):
"""
An attempt was made to register a model more than once.
"""
pass
registry = []
def register(model, tag_descriptor_attr='tags',
tagged_item_manager_attr='tagged'):
"""
Sets the given model class up for working with tags.
"""
if model in registry:
raise AlreadyRegistered(
_('The model %s has already been registered.') % model.__name__)
registry.append(model)
# Add tag descriptor
setattr(model, tag_descriptor_attr, TagDescriptor())
# Add custom manager
ModelTaggedItemManager().contribute_to_class(model,
tagged_item_manager_attr)