当前位置: 首页 > news >正文

Python模块导入机制(sys.path详解)

目录

  • 前言
  • 核心概念

前言

这篇博客将汇总讲解Python的模块导入机制,弄明白Python解释器在导入包时的运作原理。

核心概念

sys.path 是 Python 解释器的“模块查找清单”,导入模块时,解释器会逐一遍历清单中的路径,找到对应 .py 文件或包则导入成功,否则报错。其构成来源(按优先级排序):

  1. 当前环境的 site-packages(第三方库路径)
  2. 环境变量 PYTHONPATH 配置的自定义路径
  3. 程序启动时的 当前工作目录(指的是控制台当前所处的目录)
  4. 启动脚本(主程序)所在的目录(仅主脚本专属),比如执行python main.py时,python解释器会把main函数所处目录加入到sys.path路径中。

值得注意的是,sys.path 在程序启动时一次性确定,在程序执行中,执行函数、导入模块等运行中操作,不会自动修改 sys.path。除非我们程序主动修改sys.path。

还有一点值得说明,启动脚本(主程序)是指直接被执行的 .py 文件(如python main.py中的 main.py),或通过 uvicorn 等工具指定的入口文件(如uvicorn main:app中的 main.py)。只有这个脚本的存放目录,会被 Python 自动加入 sys.path,其他被导入的模块/函数所在目录均不会自动加入。

http://www.cnnetsun.cn/news/718700.html

相关文章:

  • SpreadJS V19.0 新特性解密:透视表拖动自定义排序,解锁数据整理新姿势
  • 家庭公共WiFi安全终极指南:从密码设置到防蹭网的保姆级防护攻略
  • 网络安全审计核心流程全解析:从日志收集到风险报告的关键指标与实践
  • CTF竞赛入门指南:用Python从零开始编写自动化解题脚本
  • 想入行网络安全?这份零基础入门指南,帮你避开90%的常见学习误区。
  • RAG不是万能的:没有可观测性,你的系统只是在“碰运气”
  • 投稿不再踩坑!宏智树 AI:解锁期刊论文写作的高效通关密码
  • 宏智树 AI:ChatGPT 学术版驱动的全流程学术写作智能解决方案
  • 基于SpringBoot的校园食堂订餐系统毕业设计
  • 研究一下isaac sim的pytorch
  • 【开题答辩全过程】以 茉莉园小区物业快速维修服务系统为例,包含答辩的问题和答案
  • 【改进差分优化算法L-SHADE-SPACMA】差分进化算法(DE)及其变体L-SHADE-SPACMA在CEC2005函数寻优的对比研究附Matlab代码
  • 接口在 Postman 测试很快,页面加载咋就慢?
  • 收藏级指南|无向量化RAG新范式:从架构拆解到生产落地(小白/程序员必学)
  • 设计模式学习(16) 23-14 命令模式
  • 【Python视觉】文字怎么“贴”在瓶子上?揭秘 AI 如何利用“网格变形”实现曲面包装的完美汉化
  • 基于SpringBoot的校园志愿者管理系统毕业设计源码
  • 基于SpringBoot的校园疫情防控信息管理系统毕设
  • 远程固件升级服务(第三方服务器,使用libfota2扩展库)
  • PHP的localhost 需要走互联网吗?
  • 国产测试用例管理工具市场格局解析:从功能差异看研发效能提升路径
  • 无人机视角智慧农业田间作物与杂草识别分割数据集labelme格式1359张2类别
  • 红队渗透测试通关秘籍!从入口突破到内网横移,全链路给你扒明白
  • Deepoc具身模型:清洁机器人的智能决策引擎
  • Linux怎么抓包?
  • 收藏级指南|RAG架构演进全解析:从基础到智能体协同的技术路径
  • 发一篇SCI论文多少钱?
  • 2026年最强网络安全工程师核心知识学习路线总结,从入门到精通,看这一篇就够了
  • Proxmox VE 20节点企业级集群部署与管理指南
  • LoRa智能网关在智慧农业远程监测中的解决方案