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
服务托管最佳实践:
- 根据应用类型选择合适的托管工具
- Web 应用:Gunicorn/uWSGI
- 后台服务:Supervisor
- 系统服务:systemd
- 配置合理的进程数和线程数
- 设置适当的超时时间
- 配置日志记录
- 实现优雅关闭
- 监控服务状态
- 设置自动重启
TIP
开发工具最佳实践:
- 选择合适的 IDE 和插件
- 使用虚拟环境隔离项目依赖
- 遵循代码规范和风格指南
- 编写单元测试和文档
- 使用版本控制管理代码
- 定期进行代码审查
- 使用自动化工具提高效率