import ... as ...似乎失败,' module'没有属性

时间:2014-08-28 03:15:00

标签: python centos

有一个基于webware for python的python web服务。在这个应用程序中,有一个多个"上下文",实质上是具有特化的基础应用程序的扩展。其中有五个。今天添加的一个是抛出一个错误,但几天前添加的其他人没有。

import MyModule as mv

class Main():
    def __init__(self):
        self.vendorcode = mv.id

上面的代码在"self.vendorcode = mv.id"处引发了错误,说该模块没有属性"id"。导入的文件"MyModule.py"包含以下内容:

# config parameters
id = 'TEST'
code = 'test_c'
name = 'test_n'

文件中没有其他内容。

为什么这个设置会在其他四个子目录中运行,又称" contexts",但不是最后一个?换句话说,我应该寻找什么?我已经确认了文件权限和文件字符集类型,看起来很好。

更新:我改变了#id; id" to" ident"但错误仍然存​​在。使用打印件验证模块文件是否正确。使用python 2.4.3解释器,我看到文件已加载。在下面的示例中" TRANS"是预期的回报值。

>>> import MoluVendor as mv
>>> print mv.ident
TRANS
>>> 

所以我写了一个快速测试,将其作为文件直接保存在MyModule中,如下所示:

import MyModule as mv

class MainTest:
    def __init__(self):
        self.vendorcode = mv.ident

    def showme(self):
        print self.vendorcode

if __name__ == '__main__':
    mt = MainTest()
    mt.showme()

也正确报告。所以导入工作就是这么简单。

困扰我的是,还有其他四组文件,包括" MyModule.py"在每一个,工作正常。我将代码与代码进行了比较,但我找不到任何差异。所有这些文件集都由一个在Apache中作为deamon运行的应用程序调用。因此,只有一个不工作是令人困惑的。

1 个答案:

答案 0 :(得分:0)

我浏览了所涉及的文件并检查了每个文件中的gremlins。也就是说,我确定文件是ASCII,没有unicode或嵌入字符,并使用可接受的代码页规范保存它们。我重新加载了应用程序,现在一切正常。

所以,最后,问题出在椅子和键盘之间。当我为新的“上下文”修改应用程序文件时,我忽略了(显然)以正确的格式保存文件。