2013-01-05 60 views
1

我有两个文件,SysDump.pylibApi.py在同一个文件夹中。 在SysDump我做的:导入导入功能 - Python 2.6

from libApi._SysDump import * 

libApi我:

def _SysDump(): 
    import cPickle as _cPickle 
    import math as _math 
    from zipfile import ZipFile as _ZipFile 
    import re as _re 

但是我得到的错误:

from libApi._SysDump import * 
ImportError: No module named _SysDump 

我用VS2012+PTVS单步执行代码和执行跟踪当我穿过但没有进入时def _SysDump()libApi。问题是我如何才能在Python 2.6中完成这项工作?

+0

你有'__init __。py'文件吗?如果没有,你应该可以使用'import SysDump',然后'SysDump._SysDump()' –

+0

是的,我确实有__init__.py。对不起,我没有得到它。如果我在SysDump.py文件中导入SysDump,会得到什么好处?请澄清 –

+0

好吧,向所有人开放。在python中,你可以将'function'的一部分作为import?我问这是因为这个_SysDump()是一个函数而不是一个可以导入方法或变量的类 – Crazyshezy

回答

2
from libApi._SysDump import * 

当写这个,Python将一个包libApi并在它的模块调用_SysDump。一个包相当于一个文件夹,一个模块是一个文件。从你的解释,这不是你的情况。你有一个功能_SysDump的模块libApi。所以,如果有的话,你可以这样做:

from libApi import _SysDump 

所以,你会得到的_SysDump函数的引用。请注意,运行该函数不会为您提供所有要导入的模块的引用。在函数内部,模块将被导入并分配给局部变量。函数结束后,这些引用不见了。

如果你想有一些模块照顾所有进口的,你可以使执行这些进口文件,并从该模块导入所有:

# imports.py 
import cPickle as _cPickle 
import math as _math 
from zipfile import ZipFile as _ZipFile 
import re as _re 

然后:

from imports import * 
+0

这工作。特别感谢你教我钓鱼的解释:-)。问题解决了!!谢谢 –