Python中的模块与包
概述
模块是代码文件,包是文件夹
可以导入的类型有:包、模块、模块中的内容
即使是导入一个模块的部分内容,整个模块也会完整地运行一遍
导入内容的时候,一定要使用from指定模块的位置
导入模块或包的时候,有时候不用from指定路径
可以使用as简化导入后的名称
相对导入和绝对导入
相对导入就是按照相对路径导入
单点表示当前路径,双点表示上层路径
from . import x/from ..x import y
绝对导入就是按照绝对路径导入
绝对路径导入从包的根目录开始
包的根目录是从第一个__init__.py开始的(蜜汁Python)
from A.B.C import D
包的初始化
包(文件夹)的目录下需要一个__init__.py
导入包或者包的子内容的时候,都需要执行该__init__.py
导入包的时候,只会执行包的__init__.py
如果希望导入包就是导入包的所有内容,就需要在该文件写明
__init__.py的作用是,初始化这一个运行层级
包外导入
导入同目录的其他文件直接import即可
导入包也直接import即可
如果有多级目录,就按照包的标准来
不需要使用到from
包内导入
包内所有的导入都加上from来指定路径
建议使用绝对导入
__init__.py里面务必使用相对导入,否则会套娃(想想为什么)
全部导入的控制方法
对于全部导入:from x import *
即使是全部导入,导入的也只是所有的不以下划线开始的变量
控制导入内容的方法:__all__=['x','y']
但是如果不是全部导入,而是导入模块后再访问,这种方法无效
ps:尽量不要用全部导入的方式
模块中不可访问的内容
模块中命名以双下划线开始的变量导入模块后也不可访问
eg:__x
包的形式和安装方法
从源码安装
Wheel包
AI:
在 Python 中,“wheel” 是一个特定的包格式,全称是 Wheel Archive Format,它的文件扩展名是 .whl。Wheel 格式旨在替代旧的 Egg 格式,以更有效地分发 Python 包。
Wheel 包是一种二进制包格式,通过预编译某些扩展而不需要源代码编译使得包安装更快。这对于包含大量代码或需要编译 C/C++ 扩展的库尤其有用,比如 NumPy 和 SciPy 等,这些操作通常相对较慢并且需要编译环境。
Egg包