Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 进口像似乎失败了';模块';没有属性_Python_Centos - Fatal编程技术网

Python 进口像似乎失败了';模块';没有属性

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”。导

有一个基于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'
文件中没有其他内容

为什么这个设置会在其他四个子目录(也称为“上下文”)中工作,但在最后一个子目录中却不工作?换句话说,我应该寻找什么?我已经确认了文件权限和文件字符集类型,看起来还可以

更新:我将“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函数。见下面的答案。(我希望发布答案是正确的做法)