1

我有两个文件,SysDump.py并且libApi.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 中完成这项工作?

4

1 回答 1

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 *
于 2013-01-05T17:41:52.963 回答