Python AttributeError:'module'对象没有属性'name'

时间:2014-11-25 11:40:08

标签: python

尝试在我的Windows系统中设置客户端Python脚本,最后我遇到了以下错误,在Google和我自己的大约4小时内尝试过。但无法找到解决方案。由于我是Python的新手,我无法找到解决方案。

请看下面的代码及其错误,所以你可能有我的解决方案,

错误:

C:\Python26>python C:\xampp\htdocs\cequel-dev\mbtools\main_inject.py
Traceback (most recent call last):
  File "C:\xampp\htdocs\cequel-dev\mbtools\main_inject.py", line 12, in <module>
    import injectdir
  File "C:\xampp\htdocs\cequel-dev\mbtools\injectdir\__init__.py", line 10, in <module>
    import action
  File "C:\xampp\htdocs\cequel-dev\mbtools\injectdir\action\__init__.py", line 1, in <module>
    from command import list
  File "C:\xampp\htdocs\cequel-dev\mbtools\injectdir\action\command.py", line 28, in <module>
    action_list[action.name]=action
AttributeError: 'module' object has no attribute 'name'

代码:(行号:19至28)

try:
   action_list={}
   for file in filenames:
      if file.endswith('.py') and file != '__init__.py' and file != 'command.py':
         #Import the file as a module action_imp
         exec "import {0} as action_imp".format(file[0:-3])
         #Get the action object from action_imp. Name is a required method for all actions
         action=action_imp
         #Put the file name in file_name
         action.file_name=file[0:-3]
         action_list[action.name]=action 
except:

这似乎是一个数组属性错误。所以我试过if条件,但到目前为止没有运气。

所以我坚持使用最后一行(&#34; action_list [action.name] = action&#34;)。如果您有任何建议或任何快速解决方案来抑制for循环中的错误,请告诉我。

感谢。

1 个答案:

答案 0 :(得分:0)

正如exec声明中的评论所说,每个动作都必须有一个名字。

确保filenames__init__.pycommand.py除外)中列出的每个文件都包含变量name

或者,您可以通过将第28行替换为:

来抑制错误
try:
    action_list[action.name]=action
except AttributeError:
    print "Could not register action", action.file_name