在函数中导入导入 - Python 2.6

时间:2013-01-05 17:24:26

标签: python python-2.6

我在同一文件夹中有两个文件SysDump.pylibApi.py。 在SysDump我做:

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中完成这项工作?

1 个答案:

答案 0 :(得分:2)

from libApi._SysDump import *

编写本文时,Python会查找一个包libApi,其中包含一个名为_SysDump的模块。包等同于文件夹,模块是单个文件。根据您的解释,这不是您的情况。您有一个模块libApi,其函数为_SysDump。所以如果有的话,你可以这样做:

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 *