Python 导包和依赖路径问题

import 导包的机制

  1. 关于 sys.path

    • python 所有的包都会从 sys.path 中获取,并按顺序读取包依赖

    • 会默认把当前运行的 py 文件的父路径写入到 sys.path 中

    • 自己写的的包,目录必须也要在 sys.path 中,才可以正常进行包导入

    • 查看 sys.path 的内容

      python 复制代码
      import sys
      print(sys.path)
  2. 一般情况下,包导入的优先级是:当前目录.py文件 > 当前目录有__init__.py 文件的目录 > 标准库 > 第三方库

pycharm 和 vscode 中的导包情况

  • 在 pycharm 中,对某个文件夹:右键 -> 将目标标记为 -> 源代码根目录 即等同于把该文件夹加入到 sys.path

  • 在 vscode 中没有类似的操作,但可以通过修改环境变量PYTHONPATH来增加路径

    bash 复制代码
    # 执行
    export PYTHONPATH="/home/yzz/xxx/xxx:$PYTHONPATH"
    
    # 或者在工作目录下创建 .env 文件,写入环境变量键值,python 插件会默认该文件作为环境变量
    PYTHONPATH="/home/yzz/xxx/xxx:$PYTHONPATH"

其他规范

  • 个人项目中的包模块最好不要和 Python 内置包、第三方包重名
  • 尽量少的使用相对路径导包
相关推荐
曲幽4 分钟前
FastAPI单元测试实战:别等上线被喷才后悔,TestClient用对了真香!
python·单元测试·pytest·api·fastapi·web·httpx·testclient·依赖项覆盖
章鱼丸-5 分钟前
DAY34 GPU 训练与类的 call 方法
开发语言·python
小陈工17 分钟前
2026年3月24日技术资讯洞察:边缘AI商业化,Java26正式发布与开源大模型成本革命
java·运维·开发语言·人工智能·python·容器·开源
qq_4160187219 分钟前
Python多线程与多进程:如何选择?(GIL全局解释器锁详解)
jvm·数据库·python
m0_6625779724 分钟前
用Python生成艺术:分形与算法绘图
jvm·数据库·python
MORE_7739 分钟前
leecode100-买卖股票的最佳时期-贪心算法
python·算法·贪心算法
暮冬-  Gentle°1 小时前
用Python制作一个文字冒险游戏
jvm·数据库·python
小小小米粒1 小时前
[特殊字符] 正常部署 AI + 流式输出(Stream)[特殊字符] 为什么会 CPU 炸了?
开发语言·python
站大爷IP1 小时前
Python异步编程:asyncio核心用法与避坑指南
python
m0_587958951 小时前
游戏与图形界面(GUI)
jvm·数据库·python