【笔记】结合 Conda任意创建和配置不同 Python 版本的双轨隔离的 Poetry 虚拟环境
如何结合 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
命令会提示我们填写的一些常见项目信息:
-
Package name: 你的项目的名称。
默认情况下,Poetry 会使用当前目录的名称作为项目名称。
我们可以直接按回车键接受默认值,或者输入新的项目名称。 -
Version: 项目的版本号。
默认格式为0.1.0
,我们可以根据需要修改。 -
Description: 项目的简短描述。
这将帮助其他人了解我们的项目的用途。 -
Author name: 项目作者的名称。
我们可以输入我们的名字或团队名称。 -
License: 项目的开源协议。
例如 “MIT”
是一种常见的选择。 -
Python version: 项目所需的 Python 版本范围。
例如,输入^3.11
表示项目兼容 Python 3.11 及以上版本。 -
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 虚拟环境,有效避免项目间的依赖冲突,提升开发效率。
相关文章:

【笔记】结合 Conda任意创建和配置不同 Python 版本的双轨隔离的 Poetry 虚拟环境
如何结合 Conda 任意创建和配置不同 Python 版本的双轨隔离的Poetry 虚拟环境? 在 Python 开发中,为不同项目配置独立且适配的虚拟环境至关重要。结合 Conda 和 Poetry 工具,能高效创建不同 Python 版本的 Poetry 虚拟环境,接下来…...

多模态学习路线(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激活函数(二分类&…...

[10-1]I2C通信协议 江协科技学习笔记(17个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17...

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. 右侧&…...
PostgreSQL 对 IPv6 的支持情况
PostgreSQL 对 IPv6 的支持情况 PostgreSQL 全面支持 IPv6 网络协议,包括连接、存储和操作 IPv6 地址。以下是详细说明: 一、网络连接支持 1. 监听 IPv6 连接 在 postgresql.conf 中配置: listen_addresses 0.0.0.0,:: # 监听所有IPv4…...
python数据结构和算法(1)
数据结构和算法简介 数据结构:存储和组织数据的方式,决定了数据的存储方式和访问方式。 算法:解决问题的思维、步骤和方法。 程序 数据结构 算法 算法 算法的独立性 算法是独立存在的一种解决问题的方法和思想,对于算法而言&a…...
视觉slam--框架
视觉里程计的框架 传感器 VO--front end VO的缺点 后端--back end 后端对什么数据进行优化 利用什么数据进行优化的 后端是怎么进行优化的 回环检测 建图 建图是指构建地图的过程。 构建的地图是点云地图还是什么信息的地图? 建图并没有一个固定的形式和算法…...

统计按位或能得到最大值的子集数目
我们先来看题目描述: 给你一个整数数组 nums ,请你找出 nums 子集 按位或 可能得到的 最大值 ,并返回按位或能得到最大值的 不同非空子集的数目 。 如果数组 a 可以由数组 b 删除一些元素(或不删除)得到,…...
npm install 相关命令
npm install 相关命令 基本安装命令 # 安装 package.json 中列出的所有依赖 npm install npm i # 简写形式# 安装特定包 npm install <package-name># 安装特定版本 npm install <package-name><version>依赖类型选项 # 安装为生产依赖(默认&…...
Spring Boot 与 Kafka 的深度集成实践(二)
3. 生产者实现 3.1 生产者配置 在 Spring Boot 项目中,配置 Kafka 生产者主要是配置生产者工厂(ProducerFactory)和 KafkaTemplate 。生产者工厂负责创建 Kafka 生产者实例,而 KafkaTemplate 则是用于发送消息的核心组件&#x…...
【学习记录】使用 Kali Linux 与 Hashcat 进行 WiFi 安全分析:合法的安全测试指南
文章目录 📌 前言🧰 一、前期准备✅ 安装 Kali Linux✅ 获取支持监听模式的无线网卡 🛠 二、使用 Kali Linux 进行 WiFi 安全测试步骤 1:插入无线网卡并确认识别步骤 2:开启监听模式步骤 3:扫描附近的 WiFi…...
后端下载限速(redis记录实时并发,bucket4j动态限速)
✅ 使用 Redis 记录 所有用户的实时并发下载数✅ 使用 Bucket4j 实现 全局下载速率限制(动态)✅ 支持 动态调整限速策略✅ 下载接口安全、稳定、可监控 🧩 整体架构概览 模块功能Redis存储全局并发数和带宽令牌桶状态Bucket4j Redis分布式限…...

vue3 手动封装城市三级联动
要做的功能 示意图是这样的,因为后端给的数据结构 不足以使用ant-design组件 的联动查询组件 所以只能自己分装 组件 当然 这个数据后端给的不一样的情况下 可能组件内对应的 逻辑方式就不一样 毕竟是 三个 数组 省份 城市 区域 我直接粘贴组件代码了 <temp…...
Angular中Webpack与ngx-build-plus 浅学
Webpack 在 Angular 中的概念 Webpack 是一个模块打包工具,用于将多个模块和资源打包成一个或多个文件。在 Angular 项目中,Webpack 负责将 TypeScript、HTML、CSS 等文件打包成浏览器可以理解的 JavaScript 文件。Angular CLI 默认使用 Webpack 进行项目…...
大模型智能体核心技术:CoT与ReAct深度解析
**导读:**在当今AI技术快速发展的背景下,大模型的推理能力和可解释性成为业界关注的焦点。本文深入解析了两项核心技术:CoT(思维链)和ReAct(推理与行动),这两种方法正在重新定义大模…...
信息系统分析与设计复习
2024试卷 单选题(20) 1、在一个聊天系统(类似ChatGPT)中,属于控制类的是()。 A. 话语者类 B.聊天文字输入界面类 C. 聊天主题辨别类 D. 聊天历史类 解析 B-C-E备选架构中分析类分为边界类、控制类和实体类。 边界…...

Linux【5】-----编译和烧写Linux系统镜像(RK3568)
参考:讯为 1、文件系统 不同的文件系统组成了:debian、ubuntu、buildroot、qt等系统 每个文件系统的uboot和kernel是一样的 2、源码目录介绍 目录 3、正式编译 编译脚本build.sh 帮助内容如下: Available options: uboot …...
记一次spark在docker本地启动报错
1,背景 在docker中部署spark服务和调用spark服务的微服务,微服务之间通过fegin调用 2,问题,docker容器中服务器来后,注册中心都有,调用服务也正常,但是调用spark启动任务后报错,报错…...
【向量库】Weaviate 搜索与索引技术:从基础概念到性能优化
文章目录 零、概述一、搜索技术分类1. 向量搜索:捕捉语义的智能检索2. 关键字搜索:精确匹配的传统方案3. 混合搜索:语义与精确的双重保障 二、向量检索技术分类1. HNSW索引:大规模数据的高效引擎2. Flat索引:小规模数据…...
ABB馈线保护 REJ601 BD446NN1XG
配电网基本量程数字继电器 REJ601是一种专用馈线保护继电器,用于保护一次和二次配电网络中的公用事业和工业电力系统。该继电器在一个单元中提供了保护和监控功能的优化组合,具有同类产品中最佳的性能和可用性。 REJ601是一种专用馈线保护继电器…...