0%

Python 开发环境管理小记

写在前面

经过许多折腾,终于找到了适合自己的 Python 开发环境管理。

本文仅作记录用,不定期更新。

注:笔者所使用的平台为 Windows 10 + WSL (Ubuntu 18.04)

Python 版本管理工具 -- pyenv

Python 的版本迭代较为迅速,截止至本文发布日期 (2020-06-14),最新的版本号为:3.9.0b3

由于不同项目的需求不同,管理开发环境的 Python 版本势在必行。

pyenv 是一个优秀的 Python 解释器版本管理工具:

pyenv lets you easily switch between multiple versions of Python.

pyenv 可以让你轻松地在多个 Python 版本间来回切换。

It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.

它简单,不显眼,且遵循 UNIX 传统 -- 单一目标的工具只专注于做好该事。

安装 pyenv

# https://github.com/pyenv/pyenv#installation
# https://github.com/pyenv/pyenv-installer#installation--update--uninstallation
curl https://pyenv.run | bash
# restart shell
exec $SHELL

运行 pyenv install --list,若 pyenv 安装成功,终端会输出可安装的 Python 解释器版本。

pyenv 的使用

使用 pyenv 安装并配置 Python 解释器

在使用 pyenv 安装 Python 解释器之前,需先解决 Python 的编译依赖 -- pyenv 通过本地编译的方式安装不同版本的 Python 解释器

sudo apt-get update
sudo apt-get install build-dep python3.6
# 或者:
sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev zlib1g-dev libssl-dev openssl libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libncursesw5-dev libffi-dev uuid-dev

在处理完相关依赖后,即可使用 pyenv 安装 Python 解释器。

pyenv install -v 3.6.9 
pyenv install -v 3.7.6
pyenv install -v 3.8.3

pyenv versions 可查看当前已安装的 Python 解释器版本。

环境设置:

# 把 3.7.6 设置为全局默认解释器
pyenv global 3.7.6
# 把 3.6.9 设为当前 shell/session 的默认解释器
pyenv shell 3.6.9
# 把 3.8.3 设为当前目录下的默认解释器
pyenv local 3.8.3

pyenv 环境管理

# 创建 tools 虚拟环境
pyenv viirtualenv 3.7.6 tools
# 激活 tools 环境
pyenv activate tools
# 安装 CLI 工具,如 pipx 和 poetry
python -m pip install pipx
# pipx install poetry
python -m pip install poetry
# 退出 tools 虚拟环境
pyenv deactivate
# 设置 tools 为全局变量
pyenv global 3.7.6 tools
# poetry 和 pipx 可以在全局环境下直接使用
poetry --version
pipx --version

延伸阅读

Python 包和依赖管理工具 -- Poetry

Poetry is a tool for dependency management and packaging in Python.

Poetry 是一个 Python 的依赖管理和打包工具。

It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.

它允许你声明项目所依赖的库,并为你管理 (安装/更新) 它们。

安装

# 推荐使用 pyenv+virtualenv 的安装方式
# 1. 使用 pip 或者 pipx 安装
python -m pip install poetry
# 2. 使用 Poetry 所提供的脚本进行安装
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python

配置

在项目目录下创建虚拟环境:

poetry config virtualenvs.in-project true

设置 pypi 镜像源:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

或者在 Poetry 项目下手动设置,编辑 pyproject.toml

[[tool.poetry.source]]
name = "tsinghua"
url = "https://pypi.tuna.tsinghua.edu.cn/simple"

使用 Poetry

新建项目:

poetry new demo
# tree
# demo
# ├── pyproject.toml
# ├── README.rst
# ├── demo
# │ └── __init__.py
# └── tests
# ├── __init__.py
# └── test_demo.py

添加依赖:

cd demo
poetry add django
# 添加开发依赖
poetry add black --dev

安装依赖:

# 仅生产依赖
poetry install --no-dev
# 所有依赖
poetry install

延伸阅读