使用conda和poetry来管理虚拟环境

TL;DR

衔接上文
Python包管理工具poetry介绍

里面提到使用pyenv管理python版本

pyenv管理python版本的主要问题是,需要进行编译安装,颇为麻烦
特别是对于某些不具备编译条件的、缺少系统管理员权限去安装缺失依赖的环境更是如此。

而conda作为常用与算法领域的虚拟环境管理工具,他可以更为方便的安装管理python版本,但是其依赖管理能力弱于poetry,且其是是独立与pip的仓库源,不像poety可以直接使用pip仓库源

因此,在这里结合两者,使用conda安装python版本,然后使用poetry管理具体的依赖

步骤

以下以Ubuntu24.04为例

安装poetry

Python包管理工具poetry介绍

安装miniconda

https://docs.anaconda.com/miniconda/

mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh

~/miniconda3/bin/conda init bash

配置poetry

配置poetry使用当前活跃的python,通过这个设置,可以让全局安装的poetry,在conda环境里面,可以直接使用conda环境的python版本作为poetry的Base环境

poetry config virtualenvs.prefer-active-python true

使用示例

python3 --version

查看全局python的版本,在笔者这里是python3.12

创建python3.9的conda环境

conda create -n python39 python==3.9
conda activate
poetry new test1
cd test1
poetry shell
(test) deepwzh@LAPTOP-LQE5ODGS:~$ poetry env info

Virtualenv
Python: 3.9.0
Implementation: CPython
Path: /home/deepwzh/miniconda3/envs/python39
Executable: /home/deepwzh/miniconda3/envs/python39/bin/python
Valid: True

Base
Platform: linux
OS: posix
Python: 3.9.0
Path: /home/deepwzh/miniconda3/envs/python39
Executable: /home/deepwzh/miniconda3/envs/python39/bin/python3.9

poetry new test2

创建python3.10的conda环境

conda create -n python10 python==3.10
conda activate
poetry new test3
poetry new test4

使用conda和poetry来管理虚拟环境

https://blogs.92ac.cn/2024/08/10/use-conda-and-poetry-venv/

作者

deepwzh

发布于

2024-08-10

更新于

2025-01-16

许可协议

评论