有一个基于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运行的应用程序调用。因此,只有一个不工作是令人困惑的。
答案 0 :(得分:0)
我浏览了所涉及的文件并检查了每个文件中的gremlins。也就是说,我确定文件是ASCII,没有unicode或嵌入字符,并使用可接受的代码页规范保存它们。我重新加载了应用程序,现在一切正常。
所以,最后,问题出在椅子和键盘之间。当我为新的“上下文”修改应用程序文件时,我忽略了(显然)以正确的格式保存文件。