Python 生态系统正在向 PEP 517 包装标准发展,规范了轮子的创建和安装方式,但未解决非 Python 数据文件的安装问题。传统的 `setup.py` 仍被广泛使用,作为“Pythonic Makefiles”,但与新标准不一致,给开发者带来了挑战,尤其是在使用 pip 安装时,可能会影响系统软件包的完整性。因此,Python 打包工具的变化需要更好地平衡兼容性与现代化。
配置setup.py文件,使用setuptools库设置项目名称、版本和依赖项,并构建可供他人安装的分发包。
本文介绍了Python打包的最新指南,重点在于setup.py的编写和PEP 517的应用。作者强调了使用twine上传包的正确方法,如何指定依赖、发布可执行程序和包含数据文件。PEP 517使构建过程更加灵活,支持使用pyproject.toml替代setup.py,简化了包管理和构建流程。
Pipenv和Poetry是Python的包管理工具。Pipenv存在文件格式多、命令混乱和性能问题等缺陷。Poetry在与PyPA的兼容性上也有不足,无法直接安装项目。未来希望pyproject.toml能够取代setup.py,结合Pipenv和Poetry的优点,形成更好的解决方案。
完成下面两步后,将自动完成登录并继续当前操作。