【笔记】结合 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 命令会提示我们填写的一些常见项目信息:

  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.pswp.cn/news/909063.shtml

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

相关文章

defineAsyncComponent

下面,我们来系统的梳理关于 defineAsyncComponent 懒加载 的基本知识点: 一、异步组件核心概念 1.1 什么是异步组件? 异步组件是 Vue 中一种按需加载组件的机制,允许将组件代码拆分为独立的 chunk,在需要时再从服务器加载。这种技术能显著提升应用初始加载速度。 1.2 为…

ANeko v1.0.3 | 在手机里养只宠物猫 实时互动 动画细腻

ANeko是一款专为喜欢猫咪的用户设计的互动养宠应用。它让你在手机屏幕上拥有一只可爱的猫咪动画,这只猫咪会实时跟随你的手指触摸轨迹,带来生动有趣的互动体验。该应用不仅保留了用户熟悉的交互式猫动画,还结合了现代高清图形技术&#xff0c…

人工智能AI

AI 简介 AI 使我们能够生成可以改进卫生保健的出色软件,让人能够克服生理上的不便,改进智能基础结构,创造令人惊叹的娱乐体验,甚至拯救地球! 什么是 AI? 简而言之,AI 就是一种模仿人类行为和能力的软件。 关键工作负载包括: 机器学习 - 它通常是 AI 系统的基础,也是…

Vue 中 data 选项:对象 vs 函数

Vue 中 data 选项&#xff1a;对象 vs 函数 在 Vue 开发中&#xff0c;data 选项可以使用对象或函数形式&#xff0c;了解它们的使用场景非常重要。下面我将通过一个直观的示例来展示两者的区别和适用场景。 <!DOCTYPE html> <html lang"zh-CN"> <h…

python打卡第49天

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 CBAM 注意力模块介绍 从 SE 到 CBAM&#xff1a;注意力机制的演进 之前我们介绍了 SE&#xff08;Squeeze-and-Excitation&#xff09;通道注意力模块&#xff0c;其本质是对特征进行增强处理。现在&#…

iOS和桌面双端抓包实战经验总结:Sniffmaster与常见工具组合解析

近几年&#xff0c;移动端和桌面端的网络调试工作变得越来越“棘手”。过去一个代理证书搞定的场景&#xff0c;现在常常被HTTPS加密、双向验证、App安全策略给难住。特别是涉及到iOS平台时&#xff0c;很多传统抓包方案都不再适用。作为一名在多个平台开发和测试的程序员&…

cloudstudio腾讯云:matplotlib 设置中文字体

检查可用字体&#xff1a; import matplotlib.font_manager as fm fonts [f.name for f in fm.fontManager.ttflist] print(fonts) # 查看系统中可用的字体列表# 列出所有中文字体文件 !fc-list :langzh没有中文字体&#xff0c;需要下载 !sudo apt-get install fonts-wqy-m…

Django中的ORM的使用步骤----以MySQL为例

1 以纯Python的形式创建项目虚拟环境 2 命令安装Django 3 在当前虚拟环境目录下命令创建Django项目 4 命令创建app 注&#xff1a; 若想将创建的子应用存放到指定目录&#xff0c;如app&#xff0c; 那么需要先手动创建app目录&#xff0c;再手动创建子应用目录&#xff0c;如o…

Rust 学习笔记:通过 Send 和 Sync trait 实现可扩展并发性

Rust 学习笔记&#xff1a;通过 Send 和 Sync trait 实现可扩展并发性 Rust 学习笔记&#xff1a;通过 Send 和 Sync trait 实现可扩展并发性Send trait&#xff1a;允许在线程之间转移所有权Sync trait&#xff1a;允许多线程访问手动实现 Send 和 Sync 是不安全的练习题 Rust…

【C++】第十一节—一文详解vector(使用+杨辉三角+深度剖析+模拟实现+细节详细补充)

Hi&#xff0c;我是云边有个稻草人&#xff0c;偶尔中二的C领域博主^(*&#xffe3;(oo)&#xffe3;)^&#xff0c;与你分享专业知识—— C_本篇博客所属专栏—持续更新中—欢迎订阅喔 目录 一、vector的介绍及使用 1.1 vector的介绍 1.2 vector的使用 &#xff08;1&…

华为智选携手IAM:突破技术边界,重塑智慧健康家居新时代

华为智选与IAM的联动创研&#xff0c;是科技与健康两大领域深度结合的推动者&#xff0c;更是健康智能家电创新的引领者。他们不再只是产品的制造商&#xff0c;而是生活方式的革新者——用创新科技重构健康生活&#xff0c;用智慧生态重塑家居体验。在这场深度的跨界融合中&am…

基于cornerstone3D的dicom影像浏览器 第三十一章 从PACS服务加载图像

文章目录 前言一、两个服务接口1. 查询检查接口2. 查询图像接口 二、查询界面组件三、修改归档总结 前言 "基于cornerstone3D的dicom影像浏览器"系列文章中都是加载本地文件夹的的dicom图像。 作为一个合格的dicom影像浏览器需要对接PACS服务端&#xff0c;从PACS服…

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…

基于React Native开发HarmonyOS 5.0医疗类应用

随着HarmonyOS 5.0的发布和React Native技术的成熟&#xff0c;开发者现在可以利用React Native框架为HarmonyOS平台构建高性能的跨平台医疗应用。 一、技术选型与优势 1.React Native HarmonyOS的组合优势 &#xff08;1&#xff09;跨平台能力​​&#xff1a;React Nati…

姜伟生《统计至简》

姜伟生《统计至简》 系列丛书之一 这套书图真漂亮&#xff0c;字间距也大&#xff0c;特别合适直接作为课件。但是理论上弱&#xff0c;有的地方算法也get不点上。适合初学者&#xff0c;因为能看图说话&#xff1b;又不适合初学者&#xff0c;因为没有解析、没有分析。 这学…

滚动—横向滚动时,如何直接滚动到对应的内容板块

使用scrollIntoView方法方法解读 scrollIntoView 是 HTML 元素&#xff08;HTMLElement&#xff09;的一个方法。当调用该方法时&#xff0c;它会尝试将调用它的元素滚动到浏览器的可视区域内。这个方法特别适用于处理页面上的滚动行为&#xff0c;比如让用户能够快速定位到页面…

HTML5 定位网页元素

1. 定位&#xff08;position&#xff09; position&#xff1a;static&#xff08;标准&#xff09; position&#xff1a;relative&#xff08;相对定位&#xff09; 偏移量的方向 相对定位的规律 浮动元素设置相对定位 position&#xff1a;absolute&#xff08;绝对…

分类数据集 - 植物分类数据集下载

数据集介绍&#xff1a;植物分类数据集&#xff0c;真实场景高质量图片数据&#xff1b;适用实际项目应用&#xff1a;自然场景植物分类项目&#xff0c;以及作为通用分类数据集场景数据的补充&#xff1b;数据集类别&#xff1a;标注说明&#xff1a;采用文件夹来区分不同的目…

​React Hooks 的闭包陷阱问题

这是主包在面试中遇到的一道题目&#xff0c;面试官的问题是&#xff1a;"这个页面初次展示出来时Count和step的值是什么&#xff0c;我点击按钮count和step的值有什么变化&#xff1f;“ 这个题目主包回答的不好&#xff0c;所以想做一个总结。 题目 import React, { …

新基建浪潮下:中国新能源汽车充电桩智慧化建设与管理实践

在新基建战略的强力推动下&#xff0c;中国新能源汽车充电桩建设正迎来智慧化升级的重要机遇期。作为连接能源革命与交通革命的关键节点&#xff0c;充电基础设施的智能化转型不仅关乎新能源汽车产业的可持续发展&#xff0c;更是构建新型电力系统的重要支撑。当前&#xff0c;…