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 内置包、第三方包重名
  • 尽量少的使用相对路径导包
相关推荐
kyle~24 分钟前
python---PyInstaller(将Python脚本打包为可执行文件)
开发语言·前端·python·qt
guidovans40 分钟前
Crawl4AI精准提取结构化数据
人工智能·python·tensorflow
言之。2 小时前
Django REST Framework响应类Response详解
后端·python·django
Abadbeginning2 小时前
FastSoyAdmin centos7云服务器+宝塔部署
vue.js·后端·python
kida_yuan2 小时前
【从零开始】13. 数据增强(Data Augmentation)
数据结构·python·nlp
封奚泽优3 小时前
班级互动小程序(Python)
python·deepseek
MediaTea3 小时前
Python:math 库函数手册(双曲函数)
开发语言·python
枫叶V3 小时前
用 FastAPI 实现大文件分片上传与断点续传(含可运行示例与客户端脚本,仅供参考)
python·fastapi
神仙别闹3 小时前
基于 Python + redis + flask 的在线聊天室
redis·python·flask