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

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.mzph.cn/diannao/69052.shtml

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

相关文章

挑战项目 --- 微服务编程测评系统(在线OJ系统)

一、前言 1.为什么要做项目 面试官要问项目,考察你到底是理论派还是实战派? 1.希望从你的项目中看到你的真实能力和对知识的灵活运用。 2.展示你在面对问题和需求时的思考方式及解决问题的能力。 3.面试官会就你项目提出一些问题,或扩展需求…

SSM聚合项目+Vue3+Element-plus项目生产部署(Ubuntu24.04LTS)

非常刺激的一次部署经历,我相信很多第一次独立部署前后端分离项目的人都遇到过 后端部署 jdk环境 安装jdk,解压后配置环境变量即可 tomcat运行war包 需要在tomcat的conf/sever.xml中配置SSM聚合项目的每一个子项目的服务(标签),这样tomc…

linux 命令笔记

rsyn 文章目录 -1. 查看系统版本1.Linux的文件权限与目录配置1.1 使用者与群组1.2 Linux文件权限概念1.3 Linux目录配置 2.Linux文件与目录管理2.1 目录与路径2.2 文件与目录管理2.3 文件内容查询2.4 文件与目录的默认权限与隐藏权限2.5 指令与文件的搜寻 3.Linux磁盘与文件系统…

暴力破解与验证码安全

目录 前言 暴力破解:简单粗暴的黑客攻击手段 暴力破解的前提条件 暴力破解的定义与原理 常见的暴力破解工具 暴力破解的常见场景 暴力破解的危害 验证码:抵御暴力破解的第一道防线 验证码的定义与作用 验证码的工作原理 验证码的类型 验证码…

Fastdds学习分享_xtpes_发布订阅模式及rpc模式

在之前的博客中我们介绍了dds的大致功能,与组成结构。本篇博文主要介绍的是xtypes.分为理论和实际运用两部分.理论主要用于梳理hzy大佬的知识,对于某些一带而过的部分作出更为详细的阐释,并在之后通过实际案例便于理解。案例分为普通发布订阅…

Three.js 后期处理(Post-Processing)详解

目录 前言 一、什么是后期处理? 二、Three.js 后期处理的工作流程 2.1 创建 EffectComposer 2.2 添加渲染通道(Render Pass) 2.3 应用最终渲染 三、后期处理实现示例 3.1 基础代码 四、常见的后期处理效果 4.1 辉光效果&#xf…

计算机视觉-边缘检测

一、边缘 1.1 边缘的类型 ①实体上的边缘 ②深度上的边缘 ③符号的边缘 ④阴影产生的边缘 不同任务关注的边缘不一样 1.2 提取边缘 突变-求导(求导也是一种卷积) 近似,1(右边的一个值-自己可以用卷积做) 该点f(x,y)…

基于SpringBoot的美食烹饪互动平台的设计与实现(源码+SQL脚本+LW+部署讲解等)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

通信方式、点对点通信、集合通信

文章目录 传统组网互联大模型组网互联:超高带宽、超低延迟、超高可靠性☆☆☆ AI计算集群互联方式:Die间、片间、集群间Die间:SoC架构转向 Chilplet 异构(多Die)、UCIe标准IO Die & Base Die节点内 NPU 间互联&…

将markdown文件和LaTex公式转为word

通义千问等大模型生成的回答多数是markdown类型的,需要将他们转为Word文件 一 pypandoc 介绍 1. 项目介绍 pypandoc 是一个用于 pandoc 的轻量级 Python 包装器。pandoc 是一个通用的文档转换工具,支持多种格式的文档转换,如 Markdown、HTM…

git:恢复纯版本库

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

实现数组的扁平化

文章目录 1 实现数组的扁平化1.1 递归1.2 reduce1.3 扩展运算符1.4 split和toString1.5 flat1.6 正则表达式和JSON 1 实现数组的扁平化 1.1 递归 通过循环递归的方式,遍历数组的每一项,如果该项还是一个数组,那么就继续递归遍历&#xff0c…

npm知识

npm 是什么 npm 为你和你的团队打开了连接整个 JavaScript 天才世界的一扇大门。它是世界上最大的软件注册表,每星期大约有 30 亿次的下载量,包含超过 600000 个包(package)(即,代码模块)。来自…

SQL进阶实战技巧:如何分析浏览到下单各步骤转化率及流失用户数?

目录 0 问题描述 1 数据准备 2 问题分析 3 问题拓展 3.1 跳出率计算

【Java】位图 布隆过滤器

位图 初识位图 位图, 实际上就是将二进制位作为哈希表的一个个哈希桶的数据结构, 由于二进制位只能表示 0 和 1, 因此通常用于表示数据是否存在. 如下图所示, 这个位图就用于标识 0 ~ 14 中有什么数字存在 可以看到, 我们这里相当于是把下标作为了 key-value 的一员. 但是这…

PythonStyle MVC 开发框架

在 Python 中,MVC(Model - View - Controller,模型 - 视图 - 控制器)是一种常见的软件设计模式,它将应用程序分为三个主要部分,各自承担不同的职责,以提高代码的可维护性、可扩展性和可测试性。…

python学opencv|读取图像(五十六)使用cv2.GaussianBlur()函数实现图像像素高斯滤波处理

【1】引言 前序学习了均值滤波和中值滤波,对图像的滤波处理有了基础认知,相关文章链接为: python学opencv|读取图像(五十四)使用cv2.blur()函数实现图像像素均值处理-CSDN博客 python学opencv|读取图像(…

Java的类加载过程

类加载就是把类(通常是.class文件的形式)通过类加载器加载到 JVM 中,经过一系列的解析成可用的 class 类 二进制流的来源可能有: 编译后的.class文件 使用ASM、ByteBuddy等字节码生成工具创建的字节码 甚至可以从网络传输得到&a…

如何使用 DeepSeek 和 Dexscreener 构建免费的 AI 加密交易机器人?

我使用DeepSeek AI和Dexscreener API构建的一个简单的 AI 加密交易机器人实现了这一目标。在本文中,我将逐步指导您如何构建像我一样的机器人。 DeepSeek 最近发布了R1,这是一种先进的 AI 模型。您可以将其视为 ChatGPT 的免费开源版本,但增加…

【Linux系统】信号:再谈OS与内核区、信号捕捉、重入函数与 volatile

再谈操作系统与内核区 1、浅谈虚拟机和操作系统映射于地址空间的作用 我们调用任何函数(无论是库函数还是系统调用),都是在各自进程的地址空间中执行的。无论操作系统如何切换进程,它都能确保访问同一个操作系统实例。换句话说&am…