推荐一份开源的 Python 最佳实践指南。
这份人工编写的指南旨在为 Python 初学者和专家提供一个关于 Python 安装、配置、和日常使用的最佳实践手册。
看一下目录:
Python 入门
Python 新手?让我们正确地设置您的Python环境:
-
选择一个 Python 解释器(3 vs 2)
- Python 的现状 (2 vs 3)
- 建议
- 所以.... 3?
- 实现
-
正确地在您的系统上安装 Python
-
正确地安装 Python
-
在Mac OS X上安装 Python 3
-
Setuptools + Pip
-
Pipenv & 虚拟环境
-
在 Linux 上安装 Python 3
-
在 Mac OS X 上安装 Python 2
-
在 Windows 上安装 Python 2
-
在 Linux 上安装 Python 2
-
借助 Pipenv 使用虚拟环境:
-
Pipenv & 虚拟环境
- 确保您已经有了 Python 和 pip
- 安装 Pipenv
- 为您的项目安装包
- 使用安装好的包
- 下一步
-
更低层次: virtualenv
- 基本使用
- 其他注意事项
- virtualenvwrapper
- 基本使用
- 其他有用的命令
- virtualenv-burrito
- autoenv
Python 开发环境
这部分指南关注 Python 开发环境,以及用于编写 Python 代码的可用且最实用的工具。
- 您的开发环境
- 文本编辑器
- IDEs
- 解释器工具
- 其他工具
- Pipenv & 虚拟环境
- 确保您已经有了 Python 和 pip
- 安装 Pipenv
- 为您的项目安装包
- 使用安装好的包
- 下一步
- 更低层次: virtualenv
- 基本使用
- 其他注意事项
- virtualenvwrapper
- 基本使用
- 其他有用的命令
- virtualenv-burrito
- autoenv
- Pip 和 Virtualenv 的更多配置
- 用 pip 来要求一个激活的虚拟环境
- 存下包以供将来使用
写出优雅的 Python 代码
这部分指南关注编写 Python 代码的最佳实践。
- 结构化您的工程
- 仓库的结构
- 结构是一把钥匙
- 模块
- 包
- 面向对象编程
- 装饰器
- 上下文管理器
- 动态类型
- 可变和不可变类型
- 提供依赖关系
- Runners
- 更多阅读
- 代码风格
- 一般概念
- 习语(Idiom)
- Python 之禅
- PEP 8
- 约定
- 阅读好的代码
- 文档
- 项目文档
- 项目发布
- 代码文档建议
- 其他工具
- 测试您的代码
- 基本
- 工具
- 日志(Logging)
- ... 或者打印?
- 库中的日志
- 应用程序中的日志
- 常见陷阱
- 可变默认参数
- 延迟绑定闭包
- 字节码(.pyc)文件无处不在!
- 选择一个许可
Python 应用的场景指南
这部分指南关注基于不同场景的工具和模块推荐。
- 网络应用
- HTTP
- 分布式系统
- Web 应用 & 框架
- Context
- 框架
- Web 服务端
- WSGI 服务器
- 服务端最佳实践
- Hosting
- 模板
- HTML 抓取
- Web抓取
- lxml和Requests
- 命令行应用
- Clint
- Click
- docopt
- Plac
- Cliff
- Cement
- Python Fire
- GUI 应用
- Camelot
- Cocoa
- GTk
- PyGObject aka (PyGi)
- Kivy
- PyObjC
- PySide
- PyQt
- PyjamasDesktop (pyjs Desktop)
- Qt
- PySimpleGUI
- Toga
- Tk
- wxPython
- 数据库
- DB-API
- SQLAlchemy
- Records
- Django ORM
- peewee
- PonyORM
- SQLObject
- 网络
- Twisted
- PyZMQ
- gevent
- 系统管理
- Fabric
- Salt
- Psutil
- Ansible
- Chef
- Puppet
- Blueprint
- Buildout
- Shinken
- 持续集成
- 为什么?
- Jenkins
- Buildbot
- Tox
- Travis-CI
- 速度
- Context
- C 扩展
- 并发
- 科学应用
- 背景
- 工具
- 库
- 资源
- 图像处理
- Python 图形库
- 开源计算机视觉(OpenCv)
- 数据序列化
- 什么是数据序列化?
- Flat vs. Nested data
- 序列化文本
- 二进制
- Protobuf
- XML 解析
- untangle
- xmltodict
- JSON
- 解析 JSON
- simplejson
- 密码学
- cryptography
- GPGME bindings
- PyCrypto
- 机器学习
- SciPy 栈(SciPy stack)
- scikit-learn
- 与 C/C++ 库交互
- C 语言外部函数接口(CFFI)
- ABI 交互
- Struct Equivalents
- 例子: Overloading repr
部署优雅的Python代码
这部分指南关注部署您的 Python 代码。
- 打包您的代码
- 打包的多种方式
- 对于 Python 开发者
- 在 Linux 上分发
- 冻结(freezing)您的代码
- 冻结的多种方式
- 比较冻结工具
- Windows
- OS X
- Linux
额外关注
这部分指南比较零散,先了解一些 Python 的背景知识,再关注下一步。
- 介绍
- 关于这份指南
- 目的
- 经由社区
- 面向社区
- 社区
- BDFL
- Python 软件基金会
- PEPs
- Python 会议
- Python 用户组
- Python 工作公告栏
- 学习 Python
- 初学者
- 中级
- 进阶者
- 工程师和科学家
- 各种各样的话题
- 参考
- 文档
- 官方文档
- Read the Docs
- pydoc
- 新闻
- PyCoder's Weekly
- Real Python
- Planet Python
- /r/python
- Talk Python Podcast
- Python Bytes Podcast
- Python Weekly
- Python News
- Import Python Weekly
- Awesome Python Newsletter
可以说非常全了。
中文开源版电子书地址:
Python 最佳实践指南中文版[1]
翻译自英文开源项目:
Hitchhiker's Guide to Python[2]
参考资料
[1]Python 最佳实践指南中文版: http://pythonguidecn.readthedocs.org/
[2]Hitchhiker's Guide to Python: https://github.com/realpython/python-guide
扫一扫 关注我的公众号