Python 在构造包时,如何让import X导入函数、类等?

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 │  

导入常用库时,例如导入numpy,然后导入帮助(numpy),会提供大量的类和函数

这是我的软件包的结构:

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