Skip to content

1. 集成开发环境(IDE)

1-1. 主流 IDE

工具特点适用场景
PyCharm功能强大,智能提示大型项目开发
VS Code轻量级,插件丰富通用开发
Jupyter交互式开发数据分析
Spyder科学计算数据科学

1-2. IDE 配置

python
# VS Code 配置示例 (.vscode/settings.json)
{
    "python.pythonPath": "venv/bin/python",
    "python.linting.enabled": true,
    "python.linting.pylintEnabled": true,
    "python.formatting.provider": "black",
    "editor.formatOnSave": true,
    "python.testing.pytestEnabled": true
}

# PyCharm 配置示例
# 1. 设置 Python 解释器
# 2. 配置代码风格
# 3. 设置运行配置
# 4. 配置版本控制

2. 包管理工具

2-1. pip

bash
# 基本用法
pip install package_name
pip uninstall package_name
pip list
pip show package_name

# 从 requirements.txt 安装
pip install -r requirements.txt

# 生成 requirements.txt
pip freeze > requirements.txt

# 升级包
pip install --upgrade package_name

2-2. pipenv

bash
# 安装
pip install pipenv

# 创建虚拟环境
pipenv install

# 安装包
pipenv install package_name

# 运行脚本
pipenv run python script.py

# 激活虚拟环境
pipenv shell

2-3. poetry

bash
# 安装
curl -sSL https://install.python-poetry.org | python3 -

# 创建新项目
poetry new project_name

# 添加依赖
poetry add package_name

# 安装依赖
poetry install

# 运行脚本
poetry run python script.py

3. 虚拟环境

3-1. venv

bash
# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
# Windows
venv\Scripts\activate
# Unix/MacOS
source venv/bin/activate

# 退出虚拟环境
deactivate

3-2. conda

bash
# 创建环境
conda create --name env_name python=3.8

# 激活环境
conda activate env_name

# 安装包
conda install package_name

# 导出环境
conda env export > environment.yml

# 从文件创建环境
conda env create -f environment.yml

4. 代码质量工具

4-1. 代码格式化

bash
# black
pip install black
black .

# autopep8
pip install autopep8
autopep8 --in-place --aggressive --aggressive file.py

# isort
pip install isort
isort .

4-2. 代码检查

bash
# pylint
pip install pylint
pylint file.py

# flake8
pip install flake8
flake8 file.py

# mypy (类型检查)
pip install mypy
mypy file.py

4-3. 代码复杂度分析

bash
# radon
pip install radon
radon cc file.py  # 圈复杂度
radon mi file.py  # 可维护性指数

5. 测试工具

5-1. 单元测试

python
# pytest
import pytest

def test_addition():
    assert 1 + 1 == 2

def test_division():
    with pytest.raises(ZeroDivisionError):
        1 / 0

# unittest
import unittest

class TestMath(unittest.TestCase):
    def test_addition(self):
        self.assertEqual(1 + 1, 2)

5-2. 测试覆盖率

bash
# coverage
pip install coverage
coverage run -m pytest
coverage report
coverage html

5-3. 性能测试

python
# pytest-benchmark
import pytest

def test_performance(benchmark):
    result = benchmark(lambda: sum(range(1000)))
    assert result == 499500

6. 文档工具

6-1. Sphinx

bash
# 安装
pip install sphinx

# 初始化项目
sphinx-quickstart

# 构建文档
make html

6-2. MkDocs

bash
# 安装
pip install mkdocs

# 创建项目
mkdocs new project-name

# 构建文档
mkdocs build

# 本地预览
mkdocs serve

7. 版本控制

7-1. Git 配置

bash
# 全局配置
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# 项目配置
git init
git add .
git commit -m "Initial commit"

7-2. Git 工作流

bash
# 创建分支
git checkout -b feature/new-feature

# 提交更改
git add .
git commit -m "Add new feature"

# 合并分支
git checkout main
git merge feature/new-feature

8. 调试工具

8-1. pdb

python
import pdb

def complex_function():
    pdb.set_trace()  # 设置断点
    # 代码执行到这里会暂停
    result = 0
    for i in range(10):
        result += i
    return result

8-2. ipdb

python
import ipdb

def debug_function():
    ipdb.set_trace()
    # 交互式调试
    x = 1
    y = 2
    return x + y

9. 服务托管工具

9-1. Supervisor

bash
# 安装
pip install supervisor

# 创建配置文件
echo_supervisord_conf > /etc/supervisord.conf

# 配置示例 (/etc/supervisord.conf)
[program:myapp]
command=/path/to/venv/bin/python /path/to/app.py
directory=/path/to/app
user=www-data
autostart=true
autorestart=true
stderr_logfile=/var/log/myapp.err.log
stdout_logfile=/var/log/myapp.out.log

# 启动服务
supervisord -c /etc/supervisord.conf

# 管理命令
supervisorctl status
supervisorctl start myapp
supervisorctl stop myapp
supervisorctl restart myapp

9-2. Gunicorn

bash
# 安装
pip install gunicorn

# 基本用法
gunicorn app:app

# 常用配置
gunicorn app:app \
    --workers 4 \
    --threads 2 \
    --bind 0.0.0.0:8000 \
    --timeout 120 \
    --access-logfile - \
    --error-logfile -

# 配置文件示例 (gunicorn.conf.py)
bind = "0.0.0.0:8000"
workers = 4
threads = 2
timeout = 120
accesslog = "-"
errorlog = "-"

9-3. uWSGI

bash
# 安装
pip install uwsgi

# 基本用法
uwsgi --http :8000 --wsgi-file app.py

# 配置文件示例 (uwsgi.ini)
[uwsgi]
http = :8000
wsgi-file = app.py
processes = 4
threads = 2
master = true
vacuum = true
die-on-term = true

9-4. systemd

bash
# 服务配置文件示例 (/etc/systemd/system/myapp.service)
[Unit]
Description=My Python Application
After=network.target

[Service]
User=www-data
Group=www-data
WorkingDirectory=/path/to/app
Environment="PATH=/path/to/venv/bin"
ExecStart=/path/to/venv/bin/python app.py
Restart=always

[Install]
WantedBy=multi-user.target

# 管理命令
sudo systemctl start myapp
sudo systemctl stop myapp
sudo systemctl restart myapp
sudo systemctl status myapp

TIP

服务托管最佳实践:

  1. 根据应用类型选择合适的托管工具
    • Web 应用:Gunicorn/uWSGI
    • 后台服务:Supervisor
    • 系统服务:systemd
  2. 配置合理的进程数和线程数
  3. 设置适当的超时时间
  4. 配置日志记录
  5. 实现优雅关闭
  6. 监控服务状态
  7. 设置自动重启

TIP

开发工具最佳实践:

  1. 选择合适的 IDE 和插件
  2. 使用虚拟环境隔离项目依赖
  3. 遵循代码规范和风格指南
  4. 编写单元测试和文档
  5. 使用版本控制管理代码
  6. 定期进行代码审查
  7. 使用自动化工具提高效率