网站 模块,网站建设七点,网页设计版权代码,如何建设微商网站Python项目如何打包#xff1f;
本指南总结了Python项目打包的最佳实践#xff0c;主要涉及代码的打包和分发#xff0c;以及环境和依赖的管理。
0. 一般项目清单
源代码#xff08;可使用git托管#xff09;数据包#xff08;可使用DVC托管#xff09;Docker环境镜像…Python项目如何打包
本指南总结了Python项目打包的最佳实践主要涉及代码的打包和分发以及环境和依赖的管理。
0. 一般项目清单
源代码可使用git托管数据包可使用DVC托管Docker环境镜像可使用docker hub托管
1. 代码打包
使用 setuptools 对于 Python 代码使用 setuptools 创建一个 setup.py或pyproject.toml 文件它描述了你的项目及其依赖。这允许其他人使用 pip install 来安装你的项目。我们以toml为例展现一个基本的启动文件(关于toml文件的更多解释可参考基于pyproject.toml的包管理setuptools))
[build-system]
requires [setuptools61.0]
build-backend setuptools.build_meta[project]
name apss
version 0.3.0
description 一种基于神经网络和启发式策略的深度学习模型分布式训练切分(3D parallelism)快速策略搜索算法
readme README.md
requires-python 3.7
classifiers [Programming Language :: Python :: 3,
]
dependencies [mindspore2.1.1, tensorboard_logger,numpy, tqdm,
][project.urls]
Homepage https://github.com/Cheny1m/APSS[tool.setuptools.packages.find]
exclude [benchmark*,dist*,script*][tool.wheel]
exclude [benchmark*,dist*,script*]结构化你的项目 确保你的项目有一个清晰的结构。通常包括源代码目录如 src 或项目名称、测试目录tests或benchmark、文档目录docs、自动化脚本目录scripts)等。包含必要的文件 除了源代码外还应该包括 README.md项目说明、LICENSE许可证、.gitignoreGit 忽略规则、config.json可能的配置设置、requirements.txt可能的依赖提示等文件。
# .gitignore例子# data log output
resource/# built binaries
dist# vscode
.vscode/# cache
*__pycache__
*.egg-info# pickle
*.pkl2. 数据和资源
分离大型数据 如果项目包含大型数据文件或其他资源如图像、模型等最好不要直接包含在代码包中。可以将它们托管在网络上如云存储AWS S3、Google Cloud Storage 等并在文档中提供下载链接或脚本。使用数据管理工具 对于数据科学项目考虑使用如 DVCData Version Control之类的工具协同git来管理数据。
3. 环境和依赖管理
requirements.txt 为项目创建一个 requirements.txt 文件列出所有的依赖项以便其他人可以使用 pip install -r requirements.txt 来安装依赖。使用虚拟环境 推荐在开发时使用虚拟环境如 venv 或 conda这有助于隔离依赖并确保项目的可移植性。考虑使用 Docker 对于更复杂的项目尤其是涉及多个服务或特定系统依赖时考虑使用 Docker 容器来打包你的应用及其环境。打包好的docker可以上传至docker hub供用户下载。
4. 文档和示例
写明确的文档 提供清晰、详细的文档说明如何安装、配置和使用你的项目。如果可能包括一些示例和教程。包含运行示例 提供一些示例脚本或 Jupyter 笔记本展示如何使用你的项目。
5. 测试和持续集成
编写测试 为你的代码编写单元测试和如果适用集成测试。设置 CI/CD 考虑使用持续集成/持续部署CI/CD工具如 GitHub Actions 或 Travis CI来自动化测试和部署流程。
6. 发布到 PyPI
发布包 如果你的项目是一个库并且你希望它被广泛使用可以考虑将其发布到 PyPI 上让人们可以通过 pip 直接安装。自动化脚本upload_pypi.sh
rm -rf dist
python3 -m build
python3 -m twine upload dist/*7. 版本控制
使用 Git 使用 Git 进行版本控制并在 GitHub 或其他平台上托管代码这不仅有助于团队协作也方便分享和反馈。
8. 遵守开源协议
选择合适的许可证 如果你打算开源你的项目选择一个合适的开源许可证如 MIT、GPL、Apache 等。
9.验证打包是否正确创建新环境
使用Git拉取源代码和数据文件使用docker下载好所需要的image。启动docker容器并将源代码和数据文件映射进容器。pip安装项目从源码构建 – 进入项目根目录后执行pip install -e . 如果上传到了pypi可以使用pip install xxx)执行主脚本看是否能够正常运行。