python - 在函数中导入导入 - Python 2.6

标签 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 单步执行代码,当我单步执行时,执行跟踪会转到 libApi 中的 def _SysDump()但不输入它。问题是我如何才能使其仅在 Python 2.6 中工作?

最佳答案

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 *

关于python - 在函数中导入导入 - Python 2.6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14174368/

相关文章:

python - Kubernetes 服务帐户没有分配角色?

python - 在 Python 中查找未知值

python - 如何在 Jinja2 模板中包含 HTML 文件?

python - 当我尝试为所有 python 库构建标记文件时,ctags 永远不会停止

python - 从文件中加载多个词典

Python + Leopard + Fink + Mac Ports + Python.org + Idiot = 损坏的 Python - 全新开始?

python-2.6 - 希望简单的 Python 好奇心

python - NERSC 上的 Jupyter 和 Tensorflow

python - 基于一个键/值对合并Python中的字典列表?

python - 大多数 "pythonic"组织类属性、构造函数参数和子类构造函数默认值的方式?