Python打包工具众多,如setuptools、pip、venv等,各有优缺点,缺乏统一标准。用户希望简化打包流程,减少工具数量,提高使用体验。PEP 582提议的__pypackages__目录未被采纳,未来需关注工具整合与用户需求。
2023年,Python打包社区活跃,PEP 582进行了新修改,旨在统一包管理工具以减少混乱。PEP 704提议将虚拟环境设为默认,以帮助初学者。PEP 691建议支持JSON格式的包索引,简化解析过程。
在Python项目开发中,PEP 582提出了一种新方法,通过使用本地包目录来简化依赖管理,避免了传统虚拟环境的复杂性。PDM是基于PEP 582的新包管理工具,支持简化依赖安装和版本锁定。
本文讨论了Python项目中虚拟环境的必要性,并提出PEP 582作为替代方案,允许项目使用本地包目录。作者介绍了PDM,一个新型的Python包管理工具,利用PEP 582简化依赖管理,避免虚拟环境的复杂性。PDM支持pyproject.toml标准,并具备强大的插件系统,旨在提升Python开发体验。
PEP 582 的开发日志介绍了 PDM 的新实现,解决了之前的缺陷。依赖被安装在隔离目录 __pypackages__,可通过全局 Python 运行,无需激活或修改环境变量。使用 sitecustomize.py 加载依赖,避免了权限问题。此改进源于对已有代码的重新审视。
在2020年的Python Meetup上,作者首次进行线上演讲,主题为PEP 582和项目pdm。由于时间估计过于乐观,Live Coding演示未能展示所有重要特性,主要问题出在错误的代码行,导致获取了系统版本而非Python版本。
PEP 582是Python的提案,旨在实现项目的隔离环境。PDM是唯一支持该提案的包管理器,核心特性是将项目包安装在__pypackages__/X.Y/lib下,并通过PYTHONPATH加载。使用-S参数可避免加载site-packages,同时需处理.pth文件以确保可编辑包路径正确加载。PDM通过修改可执行文件模板,确保执行时自动加载项目包目录。
PDM是一个新的Python包管理器,支持PEP 582本地项目库,无需虚拟环境。它具备快速的依赖解析器和兼容PEP 517的构建后端。开发者分享了选择构建方法的思考,讨论了使用内部API和自定义实现的优缺点,并介绍了在测试中使用mock技术的策略,以提高测试效率。
完成下面两步后,将自动完成登录并继续当前操作。