Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在函数中导入导入-Python 2.6_Python_Python 2.6 - Fatal编程技术网

在函数中导入导入-Python 2.6

在函数中导入导入-Python 2.6,python,python-2.6,Python,Python 2.6,我在同一个文件夹中有两个文件,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 但是我得到了一个错误:

我在同一个文件夹中有两个文件,
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
单步执行代码,执行跟踪在
libApi
中转到
def\u SysDump()
,但不输入它。问题是,我怎样才能使它只在Python2.6中工作

from libApi._SysDump import *
编写本文时,Python会查找包
libApi
和其中名为
\u SysDump
的模块。包相当于文件夹,模块相当于单个文件。从你的解释来看,你的情况并非如此。您有一个模块
libApi
,带有一个函数
\u SysDump
。因此,如果有任何问题,您可以这样做:

from libApi import _SysDump
因此,您将获得对
\u SysDump
函数的引用。请注意,运行该函数不会为您提供对所有试图导入的模块的引用。在函数内部,模块将被导入并分配给局部变量。函数结束后,这些引用将消失

如果希望某个模块负责所有导入,可以创建一个执行这些导入的文件,并从该模块导入所有内容:

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

from imports import *

您是否有
\uuuuu init\uuuuuuuu.py
文件?如果没有,您应该能够使用
import SysDump
,然后使用
SysDump.\u SysDump()
是,我有init.py。对不起,我没有收到。如果在SysDump.py文件中导入SysDump,我会得到什么好处?请向所有人澄清开放性问题。在python中,能否将
函数的一部分作为导入?我问这个问题是因为这个_SysDump()是一个函数,而不是一个可以获得导入方法或变量的类。注意,以下划线
\u
开头的函数应该是私有的,而不是导出的。有一件事我应该提到,感谢Crazyshezy。def _SysDump()不起作用,但类_SysDump()起作用。还有马克,我确实知道u的意义,但这是一个特例,所以请原谅我使用了u,与它的定义相反。不过,谢谢你提出来。这很有效。特别感谢你教我钓鱼的解释:-)。问题解决了!!谢谢