在Eclipse中运行简单的Django脚本时出现奇怪的Python错误,控制台中没有发生

4 投票
5 回答
2395 浏览
提问于 2025-04-15 21:27

我正在运行一个简单的脚本,这个脚本可以自动设置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, ...

撰写回答