Python 进口像似乎失败了';模块';没有属性
有一个基于webware for python的python web服务。在这个应用程序中,有多个“上下文”,本质上是具有专门化的基础应用程序的扩展。其中有五个。今天添加的一个正在抛出错误,但其他几天前添加的则没有Python 进口像似乎失败了';模块';没有属性,python,centos,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”。导
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'
文件中没有其他内容
为什么这个设置会在其他四个子目录(也称为“上下文”)中工作,但在最后一个子目录中却不工作?换句话说,我应该寻找什么?我已经确认了文件权限和文件字符集类型,看起来还可以
更新:我将“id”更改为“ident”,但仍然引发了错误。使用打印验证模块文件是否正确。使用Python2.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运行的应用程序调用。由于这个原因,只有一个不工作是令人困惑的。我浏览了相关的文件,并检查了每个文件中是否有小精灵。也就是说,我确定文件是ASCII码,没有unicode或嵌入字符,并使用可接受的代码页规范保存它们。我重新加载了应用程序,现在一切正常
最后,问题出在椅子和键盘之间。当我为新的“上下文”修改应用程序文件时,我(显然)忽略了以正确的格式保存文件。您可以查找另一个名为
MyModule.py的文件,该文件正在导入,而不是您要导入的文件。是否确定具有这些值的文件是导入的文件?请尝试打印MyModule.\uuuuu file\uuuuu
-这将告诉您是否获得了正确的模块。把id改成别的,因为它也是一个内置的python函数。见下面的答案。(我希望发布答案是正确的做法)