Python 在构造包时,如何让import X导入函数、类等?
导入常用库时,例如导入numpy,然后导入帮助(numpy),会提供大量的类和函数 这是我的软件包的结构:Python 在构造包时,如何让import X导入函数、类等?,python,package,python-import,python-module,setup.py,Python,Package,Python Import,Python Module,Setup.py,导入常用库时,例如导入numpy,然后导入帮助(numpy),会提供大量的类和函数 这是我的软件包的结构: Blur/ ├── __init__.py ├── blur │ ├── __init__.py │ ├── blur.py │ ├── funcs │ │ ├── __init__.py │ │ └── funcs.py │ ├── scripts │ │ ├── __init__.py │ │ └── blur_script.py │
Blur/
├── __init__.py
├── blur
│ ├── __init__.py
│ ├── blur.py
│ ├── funcs
│ │ ├── __init__.py
│ │ └── funcs.py
│ ├── scripts
│ │ ├── __init__.py
│ │ └── blur_script.py
│ ├── tests
│ └── utils
│ ├── __init__.py
│ └── timer.py
└── setup.py
我执行导入模糊,然后执行帮助(模糊),我得到以下信息:
NAME
blur
PACKAGE CONTENTS
blur
funcs (package)
scripts (package)
utils (package)
FILE
/Users/admin/Documents/Studie/IN3110/assignment4/Blur/blur/__init__.py
我希望
import blur
导入blur.py模块及其函数和类。如果要导入blur.py,我必须编写导入blur.blur
。你不觉得这有点难看吗?如何只使用import blur
?来实现这一点,让我们了解一下numpy
的一小部分,希望能让这更容易理解
numpy main\uuuu init\uuuuu.py
来自。输入多项式
也就是说,在同一个文件夹中,多项式
的相对导入(我们从
中知道)。因此,在实践中,这会将模块名称放入命名空间中,我们通过以下操作了解该命名空间:
目录中的“多项式”(numpy)
真的
名称空间中的最终内容大部分基于模块名称和顶级包。因此,在本例中,使用numpy
,这些导入中的每一个都被引入,以构成可用功能的巨大列表/etc
查看所有这些导入语句:
来自。导入\u分发服务器\u初始化
从…起导入核心
从.核心导入*
从…起进口同胞
从…起导入库
#FIXME:如果所有东西都在这里导入,为什么要使用numpy.lib??
从.lib导入*
从…起进口利纳尔
从…起输入fft
从…起输入多项式
从…起随机输入
从…起导入ctypeslib
从…起进口ma
从…起将matrixlib作为_mat导入
从.matrixlib导入*
从.compat导入long
如果您愿意,您可以遍历并收集所有这些名称,加上任何
*
中的所有内容,最终将numpy
中的所有可用函数相加。您阅读了吗?我知道,但这不是我要做的。由于可能存在命名空间冲突,From X import*不安全。我试图理解像numpy这样的库如何只需要一个简单的“import numpy”就可以导入模块,而不是“import numpy.foo.thud.etc”,看看它们是如何从中导入许多其他东西的。他们也在使用\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。这不是真的吗?numpy init文件中的什么使它能够import numpy
工作?我自己也在看,但是一些指导会很有帮助。我在下面将它作为一个回答@Snusifer