Ubuntu 24.04 安装 Poetry:Python 依赖管理的终极指南

news2025/2/5 10:29:43

Ubuntu 24.04 安装 Poetry:Python 依赖管理的终极指南

    • 1. 更新系统包列表
    • 2. 安装 Poetry
      • 方法 1:使用官方安装脚本
      • 方法 2:使用 Pipx 安装
    • 3. 配置环境变量
    • 4. 验证安装
    • 5. 配置 Poetry(可选)
      • 设置虚拟环境位置
      • 配置镜像源
    • 6. 创建和管理项目
      • 创建新项目
      • 安装依赖
      • 添加依赖
      • 激活虚拟环境
    • 7. 卸载 Poetry(可选)
    • 总结

在 Python 开发中,依赖管理是一个非常重要的环节。Poetry 是一个现代化的 Python 依赖管理工具,它不仅可以帮助我们管理项目的依赖,还可以管理虚拟环境、打包和发布项目。本文将详细介绍如何在 Ubuntu 24.04 上安装和配置 Poetry,并展示如何使用它来管理 Python 项目。


1. 更新系统包列表

在安装 Poetry 之前,首先确保系统包列表是最新的:

sudo apt update

2. 安装 Poetry

Poetry 可以通过多种方式安装,以下是两种推荐的方法:

方法 1:使用官方安装脚本

这是官方推荐的方式,适用于大多数用户:

curl -sSL https://install.python-poetry.org | python3 -

安装完成后,Poetry 会被安装到 ~/.local/bin 目录下。

方法 2:使用 Pipx 安装

Pipx 是一个用于隔离安装 Python 应用的工具,推荐使用:

sudo apt install pipx -y
pipx ensurepath
pipx install poetry

这种方式可以避免 Poetry 的依赖与系统全局 Python 环境冲突。


3. 配置环境变量

如果使用官方安装脚本,需要将 Poetry 的可执行文件路径添加到环境变量中:

export PATH="$HOME/.local/bin:$PATH"

将上述命令添加到 ~/.bashrc~/.zshrc 文件中,然后运行以下命令使其生效:

source ~/.bashrc

4. 验证安装

安装完成后,检查 Poetry 是否安装成功:

poetry --version

如果显示 Poetry 的版本号(如 Poetry (version 2.0.0)),说明安装成功。


5. 配置 Poetry(可选)

设置虚拟环境位置

默认情况下,Poetry 会将虚拟环境存储在 ~/.cache/pypoetry/virtualenvs 目录下。你可以将其修改为项目目录内:

poetry config virtualenvs.in-project true

配置镜像源

如果需要加速依赖包的下载,可以为 Poetry 配置国内镜像源(如清华源):

poetry source add --priority=supplemental tuna https://pypi.tuna.tsinghua.edu.cn/simple

6. 创建和管理项目

创建新项目

使用 Poetry 创建一个新项目:

poetry new my-project

这将生成一个包含 pyproject.toml 文件的项目结构。

安装依赖

进入项目目录并安装依赖:

cd my-project
poetry install

添加依赖

添加新的依赖包:

poetry add requests

激活虚拟环境

进入 Poetry 管理的虚拟环境:

poetry shell

7. 卸载 Poetry(可选)

如果需要卸载 Poetry,可以使用以下命令:

curl -sSL https://install.python-poetry.org | python3 - --uninstall

或者,如果通过 Pipx 安装:

pipx uninstall poetry

总结

通过以上步骤,你可以在 Ubuntu 24.04 上成功安装并配置 Poetry,用于 Python 项目的依赖管理和虚拟环境管理。Poetry 不仅简化了依赖管理的过程,还提供了强大的功能来管理项目的整个生命周期。如果你还没有尝试过 Poetry,现在就是一个好时机!

如果需要更详细的功能说明,可以参考 Poetry 官方文档。

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

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

相关文章

LabVIEW如何有效地进行数据采集?

数据采集(DAQ)是许多工程项目中的核心环节,无论是测试、监控还是控制系统,准确、高效的数据采集都是至关重要的。LabVIEW作为一个图形化编程环境,提供了丰富的功能来实现数据采集,确保数据的实时性与可靠性…

vue声明周期及其作用

vue声明周期及其作用 1. 生命周期总览 2. beforeCreate 我们在new Vue()时,初始化一个Vue空的实例对象,此时对象身上只有默认的声明周期函数和事件,此时data,methods都未被初始化 3. created 此时,已经完成数据观测&#xff0…

安全策略实验

安全策略实验 1.拓扑图 2.需求分析 需求: 1.VLAN 2属于办公区,VLAN 3属于生产区 2.办公区PC在工作日时间(周一至周五,早8到晚6)可以正常访问OA server其他时间不允许 3.办公区PC可以在任意时刻访问Web Server 4.生产…

蓝桥杯C语言组:暴力破解

基于C语言的暴力破解方法详解 暴力破解是一种通过穷举所有可能的解来找到正确答案的算法思想。在C语言中,暴力破解通常用于解决那些问题规模较小、解的范围有限的问题。虽然暴力破解的效率通常较低,但它是一种简单直接的方法,适用于一些简单…

七. Redis 当中 Jedis 的详细刨析与使用

七. Redis 当中 Jedis 的详细刨析与使用 文章目录 七. Redis 当中 Jedis 的详细刨析与使用1. Jedis 概述2. Java程序中使用Jedis 操作 Redis 数据2.1 Java 程序使用 Jedis 连接 Redis 的注意事项2.2 Java程序通过 Jedis当中操作 Redis 的 key 键值对2.3 Java程序通过 Jedis 当中…

NLP深度学习 DAY5:Sequence-to-sequence 模型详解

Seq2Seq(Sequence-to-Sequence)模型是一种用于处理输入和输出均为序列任务的深度学习模型。它最初被设计用于机器翻译,但后来广泛应用于其他任务,如文本摘要、对话系统、语音识别、问答系统等。 核心思想 Seq2Seq 模型的目标是将…

04树 + 堆 + 优先队列 + 图(D1_树(D17_综合刷题练习))

目录 1. 二叉树的前序遍历(简单) 1.1. 题目描述 1.2. 解题思路 方法一:递归(推荐使用) 方法二:非递归(扩展思路) 2. 二叉树的中序遍历(中等) 2.1. 题目…

总结11..

#include <stdio.h> #include <string.h> #define MAXN 1001 #define MAXM 1000001 int n, m; char maze[MAXN][MAXN]; int block[MAXN][MAXN]; // 标记每个格子所属的连通块编号 int blockSize[MAXN * MAXN]; // 记录每个连通块的大小 int dx[] {0, 0, 1, -1};…

35.Word:公积金管理中心文员小谢【37】

目录 Word1.docx ​ Word2.docx Word2.docx ​ 注意本套题还是与上一套存在不同之处 Word1.docx 布局样式的应用设计页眉页脚位置在水平/垂直方向上均相对于外边距居中排列&#xff1a;格式→大小对话框→位置→水平/垂直 按下表所列要求将原文中的手动纯文本编号分别替换…

FinRobot:一个使用大型语言模型的金融应用开源AI代理平台

“FinRobot: An Open-Source AI Agent Platform for Financial Applications using Large Language Models” 论文地址&#xff1a;https://arxiv.org/pdf/2405.14767 Github地址&#xff1a;https://github.com/AI4Finance-Foundation/FinRobot 摘要 在金融领域与AI社区间&a…

C基础寒假练习(2)

一、输出3-100以内的完美数&#xff0c;(完美数&#xff1a;因子和(因子不包含自身)数本身 #include <stdio.h>// 函数声明 int isPerfectNumber(int num);int main() {printf("3-100以内的完美数有:\n");for (int i 3; i < 100; i){if (isPerfectNumber…

【网络】应用层协议http

文章目录 1. 关于http协议2. 认识URL3. http协议请求与响应格式3.1 请求3.2 响应 3. http的常见方法4. 状态码4.1 常见状态码4.2 重定向 5. Cookie与Session5.1 Cookie5.1.1 认识Cookie5.1.2 设置Cookie5.1.3 Cookie的生命周期 5.2 Session 6. HTTP版本&#xff08;了解&#x…

React+AI 技术栈(2025 版)

文章目录 核心&#xff1a;React TypeScript元框架&#xff1a;Next.js样式设计&#xff1a;Tailwind CSSshadcn/ui客户端状态管理&#xff1a;Zustand服务器状态管理&#xff1a;TanStack Query动画效果&#xff1a;Motion测试工具表格处理&#xff1a;TanStack Table表单处理…

计算机从何而来?计算技术将向何处发展?

计算机的前生&#xff1a;机械计算工具的演进 算盘是计算机的起点&#xff0c;它其实是一台“机械式半自动化运算器”。打算盘的“口诀”其实就是它的编程语言&#xff0c;算盘珠就是它的存储器。 第二阶段是可以做四则运算的加法器、乘法器。1642年&#xff0c;法国数学家帕斯…

Docker使用指南(二)——容器相关操作详解(实战案例教学,创建/使用/停止/删除)

目录 1.容器操作相关命令​编辑 案例一&#xff1a; 案例二&#xff1a; 容器常用命令总结&#xff1a; 1.查看容器状态&#xff1a; 2.删除容器&#xff1a; 3.进入容器&#xff1a; 二、Docker基本操作——容器篇 1.容器操作相关命令 下面我们用两个案例来具体实操一…

从通讯工具到 AI 助理,AI手机如何发展?

随着AI进军各行各业&#xff0c;全面AI化时代已经到来。手机&#xff0c;作为现代人类的“数字器官”之一&#xff0c;更是首当其冲地融入了这一变革浪潮之中。 2024年年初&#xff0c;OPPO联合IDC发布了《AI手机白皮书》&#xff0c;公布OPPO已迈向AI手机这一全新阶段。到如今…

小程序-基础加强

前言 这一节把基础加强讲完 1. 导入需要用到的小程序项目 2. 初步安装和使用vant组件库 这里还可以扫描二维码 其中步骤四没什么用 右键选择最后一个 在开始之前&#xff0c;我们的项目根目录得有package.json 没有的话&#xff0c;我们就初始化一个 但是我们没有npm这个…

【CSS】谈谈你对BFC的理解

理解 CSS 中的 BFC&#xff08;块格式化上下文&#xff09; 在 CSS 中&#xff0c;BFC&#xff08;Block Formatting Context&#xff09; 是一个非常重要的概念&#xff0c;它决定了元素如何对其子元素进行定位&#xff0c;以及与其他元素的关系。理解 BFC 对于解决常见的布局…

【Uniapp-Vue3】iconfont图标库的使用

先在iconfont图标库中将需要的图标加入购物车 点击右侧购物车的图标 点击添加至项目&#xff0c;可以选中项目进行加入&#xff0c;也可以点击文件加号创建一个新的项目并添加 加入以后会来到如下界面&#xff0c;点击下载至本地 双击打开下载的.zip文件 将.css和.ttf文件进…

Linux find 命令 | grep 命令 | 查找 / 列出文件或目录路径 | 示例

注&#xff1a;本文为 “Linux find 命令 | grep 命令使用” 相关文章合辑。 未整理去重。 如何在 Linux 中查找文件 作者&#xff1a; Lewis Cowles 译者&#xff1a; LCTT geekpi | 2018-04-28 07:09 使用简单的命令在 Linux 下基于类型、内容等快速查找文件。 如果你是 W…