本指南旨在为 Python 开发者提供一系列最佳实践,涵盖项目初始化、代码风格、测试、文档编写、依赖管理、包构建与发布等方面,帮助开发者更高效地开发和管理 Python 项目。
在开始编写代码之前,请运行以下命令以初始化新的 Python 项目:
python -m venv venv && source venv/bin/activate
pip install --upgrade pip setuptools wheel
这将创建一个虚拟环境并安装必要的构建工具。
使用以下命令安装项目依赖:
pip install -r requirements.txt
# 正确示例:
import os
def greet(name: str) -> str:
return f"Hello, {name}!"
if __name__ == "__main__":
name = input("请输入你的名字:")
print(greet(name))
import unittest
from src.main import greet
class TestGreet(unittest.TestCase):
def test_greet_with_name(self):
self.assertEqual(greet("Alice"), "Hello, Alice!")
if __name__ == "__main__":
unittest.main()
使用 coverage 工具来测量测试覆盖率:
coverage run -m unittest tests/
coverage report
# 1. 安装 sphinx 和相关工具
pip install sphinx setuptools-sphinx
# 2. 在项目根目录下创建文档
cd project
sphinx-apidoc -o docs/ src/
# 3. 打开 docs/index.html 查看生成的文档
from module import * 语句。推荐的项目目录结构如下:
project/
├── src/
│ ├── __init__.py
│ └── main.py
├── tests/
│ ├── __init__.py
│ └── test_main.py
├── setup.py
└── pyproject.toml
使用 unittest 框架进行单元测试。创建一个 tests 目录,并在其中编写测试用例。
使用 coverage 工具来测量测试覆盖率。
docs/index.html 查看生成的文档。在项目根目录下创建一个 requirements.txt 文件,列出所有依赖项。
确保安装了以下工具:
pip install build twine
python -m build
dist/ 目录下。~/.pypirc 文件。.github/workflows/publish.ymlname: 发布到 PyPI
on:
release:
types: [created]
jobs:
部署:
runs-on: ubuntu-latest
steps:
- name: 检出代码库
uses: actions/checkout@v2
- name: 设置虚拟环境并安装依赖
run: |
python -m venv venv && source venv/bin/activate
pip install --upgrade pip setuptools wheel
- name: 打包项目
run: python -m build
- name: 上传到 PyPI
uses: twinebot/twine-action@v1
with:
twineUserName: ${{ secrets.PYPI_USERNAME }}
twinePassword: ${{ secrets.PYPI_PASSWORD }}
在 GitHub Actions 中设置以下秘密:
PYPI_USERNAME:PyPI 用户名PYPI_PASSWORD:PyPI 密码遵循 SemVer 标准,格式为 MAJOR.MINOR.PATCH。
如需进一步了解,请参考 Python 官方文档 或加入 Python 开发者社区。