为何Python内置模块无需同目录即可通过import命令导入?
为什么Python内置模块可直接导入?
- Python启动时会自动初始化模块查找路径列表(即
sys.path),其中已经包含了内置模块的存放目录。无论你的脚本在哪个位置运行,Python都会优先检索这些默认路径,所以直接执行import random就能定位到对应的模块。 - 内置模块分两类:一类是纯Python编写的实现(比如
datetime的部分代码),存放在Python安装目录的Lib文件夹下;另一类是C语言编写的扩展模块,编译为动态链接库(Windows下为.pyd,Linux下为.so),存放在系统专属目录中,这些路径都会被Python自动加入查找列表。
自定义跨目录模块为何需要额外处理?
- 你自己编写的模块如果不在当前脚本目录,也不在
sys.path的默认路径里,Python无法自动检索到它。这时候就需要手动将模块所在目录添加到sys.path,或者使用包结构内的相对导入,也可以把模块安装到Python的site-packages目录(比如通过pip安装)。 - 举个简单的例子,如果自定义模块在
../my_modules/目录下,可通过以下方式导入:
import sys sys.path.append("../my_modules") import my_custom_module
内容的提问来源于stack exchange,提问作者Pius
相关产品推荐
相关产品推荐

