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