我以前有过这种迷惑:绝对导入是从「根目录」开始写,那我怎么知道哪个是根目录呢?每个文件夹都是普通文件夹,并没有标记哪个是根目录呀,难道「根目录」不应该是一个相对的概念吗?有__init__.py就是根目录吗?
实际上可以这样理解:确实没有一个特殊的「根目录」文件夹的概念,但是当这个包被分发、被外部的代码使用的时候,想想目录结构是如何安排的。比如
taichi-mini/ main.py
被执行的代码(入口代码)是main.py,所以一切路径都是以main.py为基准的,那么这个时候就可以理解为什么taichi-mini/里面的代码的import都要从taichi-mini/开始写了吧:不是因为谁规定了taichi-mini/是根目录,而是因为taichi-mini/和main.py会被放在同一路径,所以才决定了我们的import要从它开始写。
对于全部导入:from x import *
即使是全部导入,导入的也只是所有的不以下划线开始的变量
控制导入内容的方法:__all__=['x','y']
但是如果不是全部导入,而是导入模块后再访问,这种方法无效
ps:尽量不要用全部导入的方式
模块中命名以双下划线开始的变量导入模块后也不可访问
eg:__x
AI:
在 Python 中,“wheel” 是一个特定的包格式,全称是 Wheel Archive Format,它的文件扩展名是 .whl。Wheel 格式旨在替代旧的 Egg 格式,以更有效地分发 Python 包。
Wheel 包是一种二进制包格式,通过预编译某些扩展而不需要源代码编译使得包安装更快。这对于包含大量代码或需要编译 C/C++ 扩展的库尤其有用,比如 NumPy 和 SciPy 等,这些操作通常相对较慢并且需要编译环境。
是一种比较老旧的格式了