Skip to content

poetry

ubuntu 安装指定版本python

  • ubuntu20.04 默认安装python3.8 如需python3.10 需按以下步骤
# 安装PPA需要的软件源
apt install software-properties-common -y
# 添加名为deadsnake的PPA源
add-apt-repository ppa:deadsnakes/ppa
# 安装指定python 版本
apt install python3.10

安装 pip or pipx

pipx 比 pip 更好用,可以保持应用依赖独立,如果项目都用 poetry 去管理只下载pip即可

apt install pip
# or
apt install pipx

python 版本管理配置

自带方式

https://docs.python.org/3/tutorial/venv.html

# 安装 python3.8-env 隔离环境工具
apt install python3.8-env
# 创建环境
python -m venv tutorial-env
# 使用 tutorial-env 隔离环境
source tutorial-env/bin/activate
# 退出隔离环境
deactivate

poetry

https://notes.zhengxinonly.com/environment/use-poetry.html

  • 安装
# 安装
pip install poetry
# or
pipx install poetry
  • 创建项目

方式一

poetry new poetry-demo

方式二

mkdir poetry-demo
poetry init
  • 创建环境
poetry env use python3
  • 激活虚拟环境
poetry shell
  • 查看设定
poetry config --list
  • 删除虚拟环境
poetry env remove python3
  • 将虚拟环境放入项目目录
poetry config virtualenvs.in-project true
# 再次使用创建环境命令后环境就在项目根目录了
  • 安装模块
poetry add
  • 更新poetry.lock

当你自行修改了 pyproject.toml 内容,比如变更特定模块的版本(这是有可能的,尤其在手动处理版本冲突的时候),此时 poetry.lock 的内容与 pyproject.toml 出现了脱钩,必须让它依照新的 pyproject.toml 内容更新、同步,使用指令

poetry lock
  • 新增模块至 dev-dependencies

有些模块,比如 pytest 、 black 等等,只会在开发环境中使用,产品的部署环境并不需要。

Poetry 允许你区分这两者,将上述的模块安装至 dev-dependencies 区块,方便让你轻松建立一份「不包含」 dev-dependencies 开发模块的安装清单。

在此以 Black 为例,安装方式如下:

poetry add black --group dev
  • 更新模块
poetry update
# 指定更新
poetry update requests toml
  • 列出模块清单
poetry show
poetry show --tree
poetry show celery --tree
  • 移除模块
poetry remove flask

补充 ohmyzsh 自动激活 poetry 虚拟环境

vim .zshrc

plugins=(
        git
        poetry-env
)

数据库连接环境

  • python3.10, mysql 为例
apt install default-libmysqlclient-dev
# 安装开发包,使用3.10必须安装3.10开发包
apt install python3.10-dev
poetry add mysql-connector-python
poetry add mysqlclient

注意django不支持mysql localhost 链接,应换为127.0.0.1

Comments