Python 2.5.4抛出'NoneType不可调用'而2.5.1工作正常

时间:2012-10-18 22:28:20

标签: python

我理解这个问题可能太模糊了,但万一有人看到这个或者可以有任何线索。我有一个应用程序在python 2.5.1下运行正常。但是当在Python 2.5.4上运行它时,它开始给出“NoneType不可调用”。

我已经检查过版本之间的更改日志,但是有很多更改,而且很难说可能有什么相关。

你能否提出任何暗示,请从哪里开始进一步挖掘?

编辑:显然有些东西是无,但问题是为什么它不是2.5.1下的无。我希望有一个众所周知的问题,所以这个问题可能会触及它。

编辑2:很明显,尝试导入win32com.client时会发生错误。任何线索如何解决它?

2 个答案:

答案 0 :(得分:1)

开始挖掘的地方是你的应用程序。当您认为某个变量应指向某个对象时,该错误消息会告诉您某个变量为None。因此,找到该变量(错误消息应该告诉您确切的位置),然后找出该变量包含None的原因。

您的代码很可能会默默地捕获错误,或者正在做出一些错误的假设。找出错误或假设,然后从那里开始工作。

答案 1 :(得分:1)

我是代表“匿名用户”发布此答案(可能是那些没有正确登录的OP?!),他将此作为编辑问题编辑(编辑被拒绝,因为它应该已经发布了作为答案 - 这就是我现在正在做的事情。

  

编辑3(并回答):完成。事实证明,win32com.client无法在同一进程中多次导入。即使是第一次导入,也需要重新生成COM缓存并确保它不是只读的。我们根本没有使用win32com来解决它,因为它似乎只需要MSXML。使用python的标准库xml.sax重写了XML处理。