我在同一文件夹中有两个文件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中完成这项工作?
答案 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 *