当前位置: 首页 > news >正文

Poetry 完整安装与项目环境搭建指南

Poetry 完整安装与项目环境搭建指南

1. Poetry 安装方式

1.1 pip 安装(推荐新手使用)

# 使用 pip 安装
pip install poetry# 验证安装
poetry --version# 如果需要升级
pip install --upgrade poetry

1.2 官方安装脚本

# Windows PowerShell
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -# Linux/MacOS
curl -sSL https://install.python-poetry.org | python3 -

1.3 环境变量配置

# Windows: 添加到用户环境变量
%APPDATA%\Python\Scripts# Linux/MacOS: 添加到 PATH
export PATH="/home/<username>/.local/bin:$PATH"

2. Poetry 初始配置

2.1 基础配置

# 配置虚拟环境位置(推荐项目内)
poetry config virtualenvs.in-project true# 配置镜像源(可选,国内用户推荐)
poetry config repositories.tsinghua https://pypi.tuna.tsinghua.edu.cn/simple

2.2 验证配置

# 查看所有配置
poetry config --list# 测试是否正常工作
poetry new test-project

3. 创建新项目

3.1 项目初始化

# 方式1:创建新项目
poetry new my-project# 方式2:在现有项目中初始化
cd existing-project
poetry init

3.2 项目结构示例

my-project/
├── pyproject.toml      # 项目配置文件
├── poetry.lock        # 依赖锁定文件
├── README.md
├── my_project/
│   └── __init__.py
└── tests/└── __init__.py

4. 依赖管理

4.1 安装依赖

# 安装项目依赖
poetry install# 添加新依赖
poetry add requests pandas# 添加开发依赖
poetry add --group dev pytest black

4.2 更新依赖

# 更新所有依赖
poetry update# 更新特定包
poetry update requests

5. 虚拟环境管理

5.1 环境操作

# 创建并激活虚拟环境
poetry shell# 在虚拟环境中运行命令
poetry run python script.py# 查看虚拟环境信息
poetry env info

5.2 依赖导出

# 导出 requirements.txt
poetry export -f requirements.txt --output requirements.txt# 包含开发依赖
poetry export -f requirements.txt --with dev --output requirements-dev.txt

6. 常见问题解决

6.1 安装问题

# pip 安装失败时
python -m pip install --user poetry# 权限问题
sudo pip install poetry  # Linux/MacOS

6.2 环境问题

# 重置虚拟环境
poetry env remove python
poetry install --remove-untracked# 清理缓存
poetry cache clear . --all

7. 最佳实践建议

  1. 安装选择

    • 新手推荐使用 pip 安装,更容易理解和管理
    • 高级用户可以使用官方脚本,获得更好的版本控制
  2. 环境管理

    • 始终在项目目录下创建虚拟环境
    • 使用 poetry.lock 锁定依赖版本
  3. 依赖管理

    • 合理使用依赖分组
    • 定期更新依赖检查安全问题
    • 导出 requirements.txt 用于兼容性场景
  4. 开发流程

    • 使用 poetry shell 进入开发环境
    • 善用 poetry run 执行临时命令

8. 总结

Poetry 的安装和使用非常灵活,可以根据个人需求选择合适的安装方式:

  • pip 安装适合新手,操作简单直观
  • 官方脚本安装更加完整和可控
  • 配合虚拟环境使用更加规范

无论选择哪种安装方式,Poetry 都能帮助我们更好地管理 Python 项目,提高开发效率和项目质量。建议新项目都尝试使用 Poetry 进行依赖管理,体验现代化的 Python 开发工具链。

1. Poetry 安装方式

1.1 pip 安装(推荐新手使用)

# 使用 pip 安装
pip install poetry# 验证安装
poetry --version# 如果需要升级
pip install --upgrade poetry

1.2 官方安装脚本

# Windows PowerShell
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -# Linux/MacOS
curl -sSL https://install.python-poetry.org | python3 -

1.3 环境变量配置

# Windows: 添加到用户环境变量
%APPDATA%\Python\Scripts# Linux/MacOS: 添加到 PATH
export PATH="/home/<username>/.local/bin:$PATH"

2. Poetry 初始配置

2.1 基础配置

# 配置虚拟环境位置(推荐项目内)
poetry config virtualenvs.in-project true# 配置镜像源(可选,国内用户推荐)
poetry config repositories.tsinghua https://pypi.tuna.tsinghua.edu.cn/simple

2.2 验证配置

# 查看所有配置
poetry config --list# 测试是否正常工作
poetry new test-project

3. 创建新项目

3.1 项目初始化

# 方式1:创建新项目
poetry new my-project# 方式2:在现有项目中初始化
cd existing-project
poetry init

3.2 项目结构示例

my-project/
├── pyproject.toml      # 项目配置文件
├── poetry.lock        # 依赖锁定文件
├── README.md
├── my_project/
│   └── __init__.py
└── tests/└── __init__.py

4. 依赖管理

4.1 安装依赖

# 安装项目依赖
poetry install# 添加新依赖
poetry add requests pandas# 添加开发依赖
poetry add --group dev pytest black

4.2 更新依赖

# 更新所有依赖
poetry update# 更新特定包
poetry update requests

5. 虚拟环境管理

5.1 环境操作

# 创建并激活虚拟环境
poetry shell# 在虚拟环境中运行命令
poetry run python script.py# 查看虚拟环境信息
poetry env info

5.2 依赖导出

# 导出 requirements.txt
poetry export -f requirements.txt --output requirements.txt# 包含开发依赖
poetry export -f requirements.txt --with dev --output requirements-dev.txt

6. 常见问题解决

6.1 安装问题

# pip 安装失败时
python -m pip install --user poetry# 权限问题
sudo pip install poetry  # Linux/MacOS

6.2 环境问题

# 重置虚拟环境
poetry env remove python
poetry install --remove-untracked# 清理缓存
poetry cache clear . --all

7. 最佳实践建议

  1. 安装选择

    • 新手推荐使用 pip 安装,更容易理解和管理
    • 高级用户可以使用官方脚本,获得更好的版本控制
  2. 环境管理

    • 始终在项目目录下创建虚拟环境
    • 使用 poetry.lock 锁定依赖版本
  3. 依赖管理

    • 合理使用依赖分组
    • 定期更新依赖检查安全问题
    • 导出 requirements.txt 用于兼容性场景
  4. 开发流程

    • 使用 poetry shell 进入开发环境
    • 善用 poetry run 执行临时命令

8. 总结

Poetry 的安装和使用非常灵活,可以根据个人需求选择合适的安装方式:

  • pip 安装适合新手,操作简单直观
  • 官方脚本安装更加完整和可控
  • 配合虚拟环境使用更加规范

无论选择哪种安装方式,Poetry 都能帮助我们更好地管理 Python 项目,提高开发效率和项目质量。建议新项目都尝试使用 Poetry 进行依赖管理,体验现代化的 Python 开发工具链。

相关文章:

Poetry 完整安装与项目环境搭建指南

Poetry 完整安装与项目环境搭建指南 1. Poetry 安装方式 1.1 pip 安装&#xff08;推荐新手使用&#xff09; # 使用 pip 安装 pip install poetry# 验证安装 poetry --version# 如果需要升级 pip install --upgrade poetry1.2 官方安装脚本 # Windows PowerShell (Invoke-…...

【MyBatis源码】MapperRegistry详解

&#x1f3ae; 作者主页&#xff1a;点击 &#x1f381; 完整专栏和代码&#xff1a;点击 &#x1f3e1; 博客主页&#xff1a;点击 文章目录 MapperRegistry 的作用核心字段解析整体工作流程addMapper方法MapperAnnotationBuilder#parse流程详解MapperAnnotationBuilder#parse…...

Java项目实战II基于Spring Boot的工作流程管理系统设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 在当今快节奏的商业环境中&#xff0c;…...

flink StreamGraph 构造flink任务

文章目录 背景主要步骤代码 背景 通常使用flink 提供的高级算子来编写flink 任务&#xff0c;对底层不是很了解&#xff0c;尤其是如何生成作业图的细节 下面通过构造一个有向无环图&#xff0c;来实际看一下 主要步骤 1.增加source 2.增加operator 3. 增加一条边&#xff0…...

【51单片机】LCD1602液晶显示屏

学习使用的开发板&#xff1a;STC89C52RC/LE52RC 编程软件&#xff1a;Keil5 烧录软件&#xff1a;stc-isp 开发板实图&#xff1a; 文章目录 LCD1602存储结构时序结构 编码 —— 显示字符、数字 LCD1602 LCD1602&#xff08;Liquid Crystal Display&#xff09;液晶显示屏是…...

理解 HTML5 Canvas 中逻辑像素与物理像素的关系

理解 HTML5 Canvas 中逻辑像素与物理像素的关系 在使用 HTML5 Canvas 时&#xff0c;开发者经常会遇到一个困惑&#xff1a;为什么鼠标的 offsetX 和 offsetY 和我绘制的图形坐标对不上&#xff1f;这通常是因为 Canvas 的逻辑像素大小和物理像素大小不一致。本文将详细解释这…...

7.揭秘C语言输入输出内幕:printf与scanf的深度剖析

揭秘C语言输入输出内幕&#xff1a;printf与scanf的深度剖析 C语言往期系列文章目录 往期回顾&#xff1a; VS 2022 社区版C语言的安装教程&#xff0c;不要再卡在下载0B/s啦C语言入门&#xff1a;解锁基础概念&#xff0c;动手实现首个C程序C语言概念之旅&#xff1a;解锁关…...

数据分析-系统认识数据分析

目录 数据分析的全貌 观测 实验 应用 数据分析的全貌 观测 实验 应用...

蓝桥杯介绍

赛事背景与历程 自2009年举办以来&#xff0c;蓝桥杯已经连续举行了多届&#xff0c;成为国内领先的信息技术赛事。2022年&#xff0c;蓝桥杯被教育部确定为2022—2025学年面向中小学生的全国性竞赛活动&#xff0c;并入选国家级A类学科竞赛。 参赛对象与组别 蓝桥杯的参赛对…...

鸿蒙加载网络图片并转换成PixelMap

鸿蒙加载网络图片并转换成PixelMap 参考文档 基于API12. 有一些图片功能需要使用 PixelMap 类型的参数&#xff0c;但是使用Image组件之类的时候无法获取到 PixelMap 类型数据。 因此只能是把图片下载下来然后加在并转换一下。 实现方式 一下封装了一个函数。使用的 rcp 模…...

hive搭建

1.准备环境 三台节点主机已安装hadoopmysql数据库 2.环境 2.1修改三台节点上hadoop的core-site.xml <!-- 配置 HDFS 允许代理任何主机和组 --> <property><name>hadoop.proxyuser.hadoop.hosts</name><value>*</value> </property&…...

51c扩散模型~合集1

我自己的原文哦~ https://blog.51cto.com/whaosoft/11541675 #Diffusion Forcing 无限生成视频&#xff0c;还能规划决策&#xff0c;扩散强制整合下一token预测与全序列扩散 当前&#xff0c;采用下一 token 预测范式的自回归大型语言模型已经风靡全球&#xff0c;同时互联…...

从零开始深度学习:全连接层、损失函数与梯度下降的详尽指南

引言 在深度学习的领域&#xff0c;全连接层、损失函数与梯度下降是三块重要的基石。如果你正在踏上深度学习的旅程&#xff0c;理解它们是迈向成功的第一步。这篇文章将从概念到代码、从基础到进阶&#xff0c;详细剖析这三个主题&#xff0c;帮助你从小白成长为能够解决实际…...

Liebherr利勃海尔 EDI 需求分析

Liebherr 使用 EDI 技术来提高业务流程的效率、降低错误率、加快数据交换速度&#xff0c;并优化与供应商、客户和其他合作伙伴之间的业务沟通。通过 EDI&#xff0c;Liebherr 实现了与全球交易伙伴的自动化数据交换&#xff0c;提升了供应链管理和订单处理的透明度。 Liebher…...

java小练习

小练1.用while语句计算11/2!1/3!1/4!...1/20!的和 public class test_11_17_2 {public static void main(String[] args) {double sum 0;double item 1;int n 20;int i 1;while(i<n){sum item;i i1;item item*(1.0/i);}System.out.println(sum);} } 小练2.计算88888…...

go语言中的占位符有哪些

在Go语言中&#xff0c;占位符主要用于格式化字符串输出&#xff0c;特别是在使用fmt包中的Printf系列函数时。以下是Go语言中常用的占位符&#xff1a; %v&#xff1a;代表值的默认格式&#xff0c;对于字符串是直接输出&#xff0c;对于整型是十进制形式。%v&#xff1a;扩展…...

基于Windows安装opus python库

项目中需要用到一些opus格式的编解码功能&#xff0c;找到网上有opus的开源库。网址&#xff1a;Opus Codec 想着人生苦短&#xff0c;没想到遇上了错误&#xff01;在这里记录一下过程 过程 安装python库 pip3 install opuslib验证 >>> import opuslib Tracebac…...

【设计模式】行为型模式(五):解释器模式、访问者模式、依赖注入

《设计模式之行为型模式》系列&#xff0c;共包含以下文章&#xff1a; 行为型模式&#xff08;一&#xff09;&#xff1a;模板方法模式、观察者模式行为型模式&#xff08;二&#xff09;&#xff1a;策略模式、命令模式行为型模式&#xff08;三&#xff09;&#xff1a;责…...

使用nossl模式连接MySQL数据库详解

使用nossl模式连接MySQL数据库详解 摘要一、引言二、nossl模式概述2.1 SSL与nossl模式的区别2.2 选择nossl模式的场景三、在nossl模式下连接MySQL数据库3.1 准备工作3.2 C++代码示例3.3 代码详解3.3.1 初始化MySQL连接对象3.3.2 连接到MySQL数据库3.3.3 执行查询操作3.3.4 处理…...

【MySQL】ubantu 系统 MySQL的安装与免密码登录的配置

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;MySQL初阶探索&#xff1a;构建数据库基础 欢迎大家点赞收藏评论&#x1f60a; 目录 &#x1f4da;mysql的安装&#x1f4d5;MySQL的登录&#x1f30f;MySQL配置免密码登录 &#x1f4da;mysql的…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法

树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作&#xff0c;无需更改相机配置。但是&#xff0c;一…...

Rust 异步编程

Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

ui框架-文件列表展示

ui框架-文件列表展示 介绍 UI框架的文件列表展示组件&#xff0c;可以展示文件夹&#xff0c;支持列表展示和图标展示模式。组件提供了丰富的功能和可配置选项&#xff0c;适用于文件管理、文件上传等场景。 功能特性 支持列表模式和网格模式的切换展示支持文件和文件夹的层…...

拟合问题处理

在机器学习中&#xff0c;核心任务通常围绕模型训练和性能提升展开&#xff0c;但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正&#xff1a; 一、机器学习的核心任务框架 机…...

EEG-fNIRS联合成像在跨频率耦合研究中的创新应用

摘要 神经影像技术对医学科学产生了深远的影响&#xff0c;推动了许多神经系统疾病研究的进展并改善了其诊断方法。在此背景下&#xff0c;基于神经血管耦合现象的多模态神经影像方法&#xff0c;通过融合各自优势来提供有关大脑皮层神经活动的互补信息。在这里&#xff0c;本研…...

统计学(第8版)——统计抽样学习笔记(考试用)

一、统计抽样的核心内容与问题 研究内容 从总体中科学抽取样本的方法利用样本数据推断总体特征&#xff08;均值、比率、总量&#xff09;控制抽样误差与非抽样误差 解决的核心问题 在成本约束下&#xff0c;用少量样本准确推断总体特征量化估计结果的可靠性&#xff08;置…...

初探用uniapp写微信小程序遇到的问题及解决(vue3+ts)

零、关于开发思路 (一)拿到工作任务,先理清楚需求 1.逻辑部分 不放过原型里说的每一句话,有疑惑的部分该问产品/测试/之前的开发就问 2.页面部分(含国际化) 整体看过需要开发页面的原型后,分类一下哪些组件/样式可以复用,直接提取出来使用 (时间充分的前提下,不…...