在Eclipse中运行简单的Django脚本时出现奇怪的Python错误,控制台中没有发生
我正在运行一个简单的脚本,这个脚本可以自动设置django的环境,这样我就可以测试django的ORM功能,而不需要去实现网页。接着,脚本会导入我在模型中定义的一种类型。当我在iPython中运行这个脚本时不会出现这个错误,但在Eclipse中运行就会出现。仅仅是做这个导入就会导致一个奇怪的异常,像下面这样:
Exception AttributeError: "'NoneType' object has no attribute 'print_exc'" in <bound method Signal._remove_receiver of <django.dispatch.dispatcher.Signal object at 0x026802B0>> ignored
我的脚本如下:
from django.core.management import setup_environ
import settings
setup_environ(settings)
from stats.models import Person
for p in Person.objects.all():
print p.Name
5 个回答
0
有可能是Eclipse使用了不同版本的Python解释器?
2
经过一些仔细的搜索,我认为是Eclipse这个工具导致了问题,而且可能很难找到具体原因。print_exc
是Python中的一个函数,用于显示错误信息。Eclipse可能在尝试给你显示错误信息时失败了,结果把信息给吞掉了。
我觉得一个合理的解决办法是换个工具继续写这个脚本,这样就不会遇到那些让人摸不着头脑的错误了。你可能会在代码中发现一个真正(可以修复)的错误,或者发现Eclipse因为它和Python的整合有bug而发出了错误警报。
如果到那时你还不确定代码是否有问题,添加一些测试可能会很有帮助。
3
在Eclipse中导入一个已有的Django项目后,我遇到了同样的AttributeError错误。
我只是删除了*.pyc文件……然后就好了……!?
- 右键点击项目 -> pyDev -> 删除 *.pyc, *.pyo, ...