尝试在我的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循环中的错误,请告诉我。
感谢。
答案 0 :(得分:0)
正如exec声明中的评论所说,每个动作都必须有一个名字。
确保filenames
(__init__.py
和command.py
除外)中列出的每个文件都包含变量name
。
或者,您可以通过将第28行替换为:
来抑制错误try:
action_list[action.name]=action
except AttributeError:
print "Could not register action", action.file_name