【笔记】结合 Conda任意创建和配置不同 Python 版本的双轨隔离的 Poetry 虚拟环境

news2025/6/10 7:58:37

如何结合 Conda 任意创建和配置不同 Python 版本的双轨隔离的Poetry 虚拟环境?

在 Python 开发中,为不同项目配置独立且适配的虚拟环境至关重要。结合 Conda 和 Poetry 工具,能高效创建不同 Python 版本的 Poetry 虚拟环境,接下来将详细阐述其完整流程及逻辑关联。

一、准备工作:明确需求与工具定位

Poetry 虚拟环境的创建,需要依赖特定 Python 版本的运行环境,同时还需要 Poetry 工具来管理项目依赖和虚拟环境配置。而 Conda 恰好能解决 Python 版本管理的问题,通过 Conda 可以快速创建不同 Python 版本的基础环境,而不直接使用conda虚拟环境,双轨隔离为 Poetry 虚拟环境的搭建提供底层支持。

二、使用 Conda 创建不同 Python 版本的基础环境

Conda 是一个强大的环境管理工具,通过它可以轻松创建指定 Python 版本的环境。

# 创建 Python 3.11 环境
conda create -n python311 python=3.11 -y
# 创建 Python 3.12 环境
conda create -n python312 python=3.12 -y
# 按需继续创建

上述命令中,-n 参数用于指定环境名称,方便区分不同版本的 Python 环境;python=3.11 或 python=3.12 明确指定了要安装的 Python 版本;-y 表示自动确认安装,避免交互式提示。创建完成后,使用以下命令激活相应环境:

# 激活 Python 3.11 环境
conda activate python311

 

三、获取 python.exe 和 poetry.exe 文件

(一)python.exe 的来源

当使用 Conda 创建 Python 环境时,相应版本的 Python 解释器(python.exe)会被安装在 Conda 环境目录下。以 Windows 系统为例,Python 3.11 环境中的 python.exe 路径可能为 D:\ProgramData\anaconda3\envs\python311\python.exe ,该文件是后续创建 Poetry 虚拟环境的核心执行文件,它决定了 Poetry 虚拟环境所基于的 Python 版本。

(二)poetry.exe 的安装与获取

在激活的 Conda 环境中,使用 pip 安装 Poetry 工具:

pip install poetry

安装完成后,Poetry 的可执行文件(poetry.exe)会被放置在 Conda 环境的 Scripts 目录下。

例如在 Windows 系统 Python 3.11 的 Conda 环境中,poetry.exe 的路径通常为 D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe 。这个文件将用于后续 Poetry 虚拟环境的创建、依赖管理等操作。

  • Python 可执行文件路径示例:

    D:\ProgramData\anaconda3\envs\python311\python.exe
    D:\ProgramData\anaconda3\envs\python312\python.exe
  • Poetry 可执行文件路径示例:

    D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe
    D:\ProgramData\anaconda3\envs\python312\Scripts\poetry.exe

四、使用命令创建 Poetry 虚拟环境

在获取了所需的 python.exe 和 poetry.exe 文件后,在激活的 Conda 环境中,切换到项目目录,即可使用 Poetry 命令创建虚拟环境。

一)在 PowerShell 中操作

& "D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" config virtualenvs.create true
& "D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" init
# 填写项目信息后再继续执行以下命令
& "D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" install

(二)在 CMD 中操作

"D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" config virtualenvs.create true
"D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" init
# 填写项目信息后再继续执行以下命令
"D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe" install

其中:

poetry config virtualenvs.create true 确保自动创建虚拟环境;

poetry init 会引导用户初始化项目,生成 pyproject.toml 文件,用于记录项目信息和依赖配置;

poetry install 则根据 pyproject.toml 文件安装项目所需的依赖包。

 

到了这一步后,我们可以按照提示填写项目信息以完成 pyproject.toml 文件的创建。

填写项目信息

以下是 poetry init 命令会提示我们填写的一些常见项目信息:

  1. Package name: 你的项目的名称。
    默认情况下,Poetry 会使用当前目录的名称作为项目名称。
    我们可以直接按回车键接受默认值,或者输入新的项目名称。

  2. Version: 项目的版本号。
    默认格式为 0.1.0,我们可以根据需要修改。

  3. Description: 项目的简短描述。
    这将帮助其他人了解我们的项目的用途。

  4. Author name: 项目作者的名称。
    我们可以输入我们的名字或团队名称。

  5. License: 项目的开源协议。
    例如 “MIT” 是一种常见的选择。

  6. Python version: 项目所需的 Python 版本范围。
    例如,输入 ^3.11 表示项目兼容 Python 3.11 及以上版本。

  7. Dependencies: 项目运行所需的依赖包。
    我们可以按提示依次输入依赖包的名称和版本要求。

示例填写过程

假设我们的项目名称是 suna,你可以这样填写:

This command will guide you through creating your pyproject.toml config.

Package name [suna]: 
Version [0.1.0]: 
Description []: My new Python project
Author name []: Your Name
License []: MIT
Python version (^3.11): 
Would you like to define your main dependencies now? (yes/no) [yes]: yes
Would you like to define your development dependencies now? (yes/no) [yes]: yes

生成的 pyproject.toml 文件示例

根据你提供的信息,Poetry 会生成一个类似以下内容的 pyproject.toml 文件:

[tool.poetry]
name = "suna"
version = "0.1.0"
description = "My new Python project"
authors = ["Your Name"]
license = "MIT"

[tool.poetry.dependencies]
python = "^3.11"

[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"

完成这些步骤后,我们的项目配置就初始化完成了。

接下来,我们可以使用 Poetry 来管理项目的依赖和构建等操作。

 

五、在 PyCharm 中配置使用 Poetry 虚拟环境(推荐)

(一)打开项目设置

点击 PyCharm 顶部菜单栏的 “文件”->“设置”->“项目:你的项目名称”->“添加 Python 解释器” 。

 

(二)添加 Poetry 解释器

在 Python 解释器设置界面,点击齿轮图标,选择 “添加现有解释器”或者“生成新的”


在弹出的窗口中,选择 “Poetry” 作为解释器类型,并指定 Poetry 的路径,即之前获取的 poetry.exe 文件路径(如 D:\ProgramData\anaconda3\envs\python311\Scripts\poetry.exe );

然后指定Poetry env use (python.exe)的路径

(如D:\ProgramData\anaconda3\envs\python311\python.exe)

Poetry 会自动管理虚拟环境,确保虚拟环境在项目目录内创建,点击 “确定” 完成配置。

 

(三)验证配置

在 PyCharm 的终端中运行 poetry --version 命令,若能正确输出版本信息,且后续项目依赖安装、代码运行等操作正常,则说明 Poetry 虚拟环境配置成功。

poetry -V
#或者
poetry --version

 

通过以上步骤,我们基于 Conda 创建了不同 Python 版本的基础环境,获取了所需的执行文件,使用 Poetry 命令创建了虚拟环境,并在 PyCharm 中完成了配置,实现了结合 Conda 任意创建和配置不同 Python 版本的 Poetry 虚拟环境,有效避免项目间的依赖冲突,提升开发效率。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2406377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多模态学习路线(2)——DL基础系列

目录 前言 一、归一化 1. Layer Normalization (LN) 2. Batch Normalization (BN) 3. Instance Normalization (IN) 4. Group Normalization (GN) 5. Root Mean Square Normalization(RMSNorm) 二、激活函数 1. Sigmoid激活函数(二分类&…

AWSLambda之设置时区

目标 希望Lambda运行的时区是东八区。 解决 只需要设置lambda的环境变量TZ为东八区时区即可,即Asia/Shanghai。 参考 使用 Lambda 环境变量

RFID推动新能源汽车零部件生产系统管理应用案例

RFID推动新能源汽车零部件生产系统管理应用案例 一、项目背景 新能源汽车零部件场景 在新能源汽车零部件生产领域,电子冷却水泵等关键部件的装配溯源需求日益增长。传统 RFID 溯源方案采用 “网关 RFID 读写头” 模式,存在单点位单独头溯源、网关布线…

[C++错误经验]case语句跳过变量初始化

标题:[C错误经验]case语句跳过变量初始化 水墨不写bug 文章目录 一、错误信息复现二、错误分析三、解决方法 一、错误信息复现 write.cc:80:14: error: jump to case label80 | case 2:| ^ write.cc:76:20: note: crosses initialization…

Unity-ECS详解

今天我们来了解Unity最先进的技术——ECS架构(EntityComponentSystem)。 Unity官方下有源码,我们下载源码后来学习。 ECS 与OOP(Object-Oriented Programming)对应,ECS是一种完全不同的编程范式与数据架构…

uni-app学习笔记二十七--设置底部菜单TabBar的样式

官方文档地址:uni.setTabBarItem(OBJECT) | uni-app官网 uni.setTabBarItem(OBJECT) 动态设置 tabBar 某一项的内容,通常写在项目的App.vue的onLaunch方法中,用于项目启动时立即执行 重要参数: indexnumber是tabBar 的哪一项&…

7种分类数据编码技术详解:从原理到实战

在数据分析和机器学习领域,分类数据(Categorical Data)的处理是一个基础但至关重要的环节。分类数据指的是由有限数量的离散值组成的数据类型,如性别(男/女)、颜色(红/绿/蓝)或产品类…

【字节拥抱开源】字节团队开源视频模型 ContentV: 有限算力下的视频生成模型高效训练

本项目提出了ContentV框架,通过三项关键创新高效加速基于DiT的视频生成模型训练: 极简架构设计,最大化复用预训练图像生成模型进行视频合成系统化的多阶段训练策略,利用流匹配技术提升效率经济高效的人类反馈强化学习框架&#x…

本地部署drawDB结合内网穿透技术实现数据库远程管控方案

文章目录 前言1. Windows本地部署DrawDB2. 安装Cpolar内网穿透3. 实现公网访问DrawDB4. 固定DrawDB公网地址 前言 在数字化浪潮席卷全球的背景下,数据治理能力正日益成为构建现代企业核心竞争力的关键因素。无论是全球500强企业的数据中枢系统,还是初创…

可视化预警系统:如何实现生产风险的实时监控?

在生产环境中,风险无处不在,而传统的监控方式往往只能事后补救,难以做到提前预警。但如今,可视化预警系统正在改变这一切!它能够实时收集和分析生产数据,通过直观的图表和警报,让管理者第一时间…

多模态大语言模型arxiv论文略读(112)

Assessing Modality Bias in Video Question Answering Benchmarks with Multimodal Large Language Models ➡️ 论文标题:Assessing Modality Bias in Video Question Answering Benchmarks with Multimodal Large Language Models ➡️ 论文作者:Jea…

【向量库】Weaviate概述与架构解析

文章目录 一、什么是weaviate二、High-Level Architecture1. Core Components2. Storage Layer3. 组件交互流程 三、核心组件1. API Layer2. Schema Management3. Vector Indexing3.1. 查询原理3.2. 左侧:Search Process(搜索流程)3.3. 右侧&…

统计按位或能得到最大值的子集数目

我们先来看题目描述: 给你一个整数数组 nums ,请你找出 nums 子集 按位或 可能得到的 最大值 ,并返回按位或能得到最大值的 不同非空子集的数目 。 如果数组 a 可以由数组 b 删除一些元素(或不删除)得到,…

vue3 手动封装城市三级联动

要做的功能 示意图是这样的&#xff0c;因为后端给的数据结构 不足以使用ant-design组件 的联动查询组件 所以只能自己分装 组件 当然 这个数据后端给的不一样的情况下 可能组件内对应的 逻辑方式就不一样 毕竟是 三个 数组 省份 城市 区域 我直接粘贴组件代码了 <temp…

Linux【5】-----编译和烧写Linux系统镜像(RK3568)

参考&#xff1a;讯为 1、文件系统 不同的文件系统组成了&#xff1a;debian、ubuntu、buildroot、qt等系统 每个文件系统的uboot和kernel是一样的 2、源码目录介绍 目录 3、正式编译 编译脚本build.sh 帮助内容如下&#xff1a; Available options: uboot …

Heygem50系显卡合成的视频声音杂音模糊解决方案

如果你在使用50系显卡有杂音的情况&#xff0c;可能还是官方适配问题&#xff0c;可以使用以下方案进行解决&#xff1a; 方案一&#xff1a;剪映替换音色&#xff08;简单适合普通玩家&#xff09; 使用剪映换音色即可&#xff0c;口型还是对上的&#xff0c;没有剪映vip的&…

Gitlab + Jenkins 实现 CICD

CICD 是持续集成&#xff08;Continuous Integration, CI&#xff09;和持续交付/部署&#xff08;Continuous Delivery/Deployment, CD&#xff09;的缩写&#xff0c;是现代软件开发中的一种自动化流程实践。下面介绍 Web 项目如何在代码提交到 Gitlab 后&#xff0c;自动发布…

无头浏览器技术:Python爬虫如何精准模拟搜索点击

1. 无头浏览器技术概述 1.1 什么是无头浏览器&#xff1f; 无头浏览器是一种没有图形用户界面&#xff08;GUI&#xff09;的浏览器&#xff0c;它通过程序控制浏览器内核&#xff08;如Chromium、Firefox&#xff09;执行页面加载、JavaScript渲染、表单提交等操作。由于不渲…

SDU棋界精灵——硬件程序ESP32实现opus编码

一、 ​​音频处理框架​ 该项目基于Espressif的音频处理框架构建,核心组件包括 ESP-ADF 和 ESP-SR,以下是完整的音频处理框架实现细节: 1.核心组件 (1) 音频前端处理 (AFE - Audio Front-End) ​​main/components/audio_pipeline/afe_processor.c​​功能​​: 声学回声…