Python import 的搜索路径顺序是:
- 在当前目录下搜索该模块 (包需要有
__init__.py
文件) - 在环境变量
PYTHONPATH
中指定的路径列表中依次搜索 (在python中用sys.path
来控制) - 在 Python 安装路径的 lib 库中搜索
其中Python安装路径lib库比较复杂.
- 对于Conda (相应环境也是), 会在
lib
文件夹内搜索.- lib文件夹内有大量动态库, 包括包依赖的经编译的动态库. 实际该文件夹下并不包含
py
文件, 因此不是真正的搜索目录. - lib内的
python2.X
或python3.X
内是标准库 (内建模块)的py文件, 实际搜索时将搜索该文件夹. -
python2.X/site-packages
该文件夹内是安装的外部包. 有些模块直接.py
形式存在, 包则以子文件夹形式存在. 其中还有一些*-info
的文件夹, 储存了一些包的相关信息(版本, 依赖等等). - 对于conda的虚拟环境, 实际相应的lib文件夹会是
envs/虚拟环境名/lib
.
- lib文件夹内有大量动态库, 包括包依赖的经编译的动态库. 实际该文件夹下并不包含
在anaconda文件夹内,
bin
是各种可执行文件.include
是各种头文件,etc
是各种设置参数和加载配置.share
含有各种其他资源(如图片, 数据, manual),pkgs
是各种包的下载安装文件.var
主要是一些cache等.
- 对于Mac系统, 实际Python是在
/System/Library/Frameworks/Python.framework/Versions/2.7/
. 同样也会有bin, lib, include文件夹. 实际上不会用原生python. 因此不需理会. - 对于Homebrew安装的python, 坐落在
/usr/local/Frameworks/Python.framework/Versions/2.7
类似的文件夹, 同样也会包含bin, etc, include, lib等文件夹. 实际上, 真正的路径是:/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7
未完...待补充...
网友评论