2012-08-05 147 views
-1

调用函数麻烦我导入一个模块如下:蟒蛇,从一个模块

filename = "email" 
mymodule = __import__('actions.'+filename) 

这个问题我有,这是,该文件立刻执行,而且我宁愿执行特定功能从文件(这样我可以通过它发送变量)。

我基本上使用插件,所以它的工作原理。

编辑: 暂时,我不关心,当我将下面一行添加脚本是否执行:

mymodule = __import__('actions.'+filename) 

但我想工作是当我添加下面一行,我想要执行的功能。但是,相反,我得到一个错误,即模块不存在该功能,即使它存在于脚本中。

mymodule.dosomething(n) 

编辑: 我个人不认为该函数有什么关系,但这里是我试图打开一个Python文件。

import webbrowser 
def OpenEmail(): 
    handle = webbrowser.get() 
    handle.open('http://gmail.google.com') 
OpenEmail() 
print "Your email has been opened" 
+1

请添加一些与不起作用的功能相关的代码。 – phant0m 2012-08-05 07:56:10

+0

我个人不认为这个功能与它有任何关系。我已经尝试了许多不同的功能,并没有奏效。这是错误---- AttributeError:'模块'对象没有属性'OpenEmail' – bs7280 2012-08-05 08:07:47

+0

btw对不起,检查编辑 – bs7280 2012-08-05 08:12:06

回答

2

除非模块执行,否则函数不存在。你不能双方都有。也许你需要在模块中添加main stanza

+0

好吧,所以我想我知道如何处理主节。请检查主文章中的编辑(如果您没有看到它,我会在一秒钟内添加),只是因为我无法在评论中正确格式化 – bs7280 2012-08-05 07:45:38

0

问题是,你得到actions模块返回。试试这个:

mymodule = __import__('actions.'+filename) 
for submodule in filename.split('.'): 
    mymodule = getattr(mymodule, submodule) 

出现这种情况,当您尝试导入子模块,即module.something.somethingelse,你module返回。

+0

操作是一个文件夹,当我尝试使用“/”字符我有语法错误问题。 – bs7280 2012-08-05 08:39:24

+0

@ user1270285是的,我知道它是一个文件夹。这就是Python模块的工作原理。 '/'表示除法。你试过它是否有效? – phant0m 2012-08-05 08:45:19

+0

AttributeError:'module'对象没有属性'OpenEmail' – bs7280 2012-08-06 06:09:28