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

news2024/11/18 8:54:49

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 开发工具链。

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

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

相关文章

AWTK-WIDGET-WEB-VIEW 发布

awtk-widget-web-view 是通过 webview 提供的接口&#xff0c;实现的 AWTK 自定义控件&#xff0c;使得 AWTK 可以方便的显示 web 页面。 项目网址&#xff1a; https://gitee.com/zlgopen/awtk-widget-web-view webview 提供了一个跨平台的 webview 接口&#xff0c;是一个非…

丹摩征文活动|FLUX.1+ComfyUI部署与使用

丹摩征文活动&#xff5c;FLUX.1ComfyUI部署与使用 1.引言 在人工智能飞速发展的今天&#xff0c;丹摩智算平台&#xff08;DAMODEL&#xff09;以其卓越的AI算力服务脱颖而出&#xff0c;为开发者提供了一个简化AI开发流程的强大工具。通过租赁GPU资源&#xff0c;丹摩智算平…

性能高于Transformer模型1.7-2倍,彩云科技发布基于DCFormer架构通用大模型云锦天章

2017年&#xff0c;谷歌发布《Attention Is All You Need》论文&#xff0c;首次提出Transformer架构&#xff0c;掀开了人工智能自然语言处理&#xff08;NLP&#xff09;领域发展的全新篇章。Transformer架构作为神经网络学习中最重要的架构&#xff0c;成为后来席卷全球的一…

【异常解决】Linux shell报错:-bash: [: ==: 期待一元表达式 解决方法

博主介绍&#xff1a;✌全网粉丝21W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…

Linux解决普通用户无法使用sudo指令的问题

问题描述&#xff1a; Linux解决普通用户无法使用sudo指令的问题 sudo 指令是允许 普通用户 临时 以 超级用户 root 的权限运行。 普通用户如果没有配置而直接使用 sudo 指令&#xff1a;系统会提示没有权限&#xff08;如下图&#xff09; 使用sudo时系统提示&#xff08;当前…

9.1 使用haarcascade_frontalface_default.xml分类器对静态图像进行人脸检测。

1&#xff09;程序代码&#xff1a; # 1. 使用haarcascade_frontalface_default.xml分类器对静态图像进行人脸检测。 import cv2 import numpy as np # 构造级联分类器对象face_cascade cv2.CascadeClassifier(./data/haarcascades/haarcascade_frontalface_default.xml# ./…

【Mysql】Mysql函数----字符串函数

1、字符串函数 函数 描述 示例 CHAR_LENGTH(S) 返回字符串S的字符个数 返回字符串runoob的字符个数&…

(干货)Jenkins使用kubernetes插件连接k8s的认证方式

#Kubernetes插件简介 Kubernetes 插件的目的是能够使用 Kubernetes 配合&#xff0c;实现动态配置 Jenkins 代理&#xff08;使用 Kubernetes 调度机制来优化负载&#xff09;&#xff0c;在执行 Jenkins Job 构建时&#xff0c;Jenkins Master 会在 kubernetes 中创建一个 Sla…

微积分第五版课后习题答案详解PDF电子版 赵树嫄

(一) 习题解答与注释 该部分基本上对《微积分》(第五版) 中的习题给出了解答&#xff0c; 并结合教与学作了大量注释。通过这些注释&#xff0c; 读者可以深刻领会教材中基本概念的准确含义&#xff0c; 开阔解题思路&#xff0c; 掌握解题方法&#xff0c; 避免在容易发生错误…

【Linux庖丁解牛】—权限!

目录 1、shell命令以及运行原理 2、Linux中的用户及用户切换 3、sudo指令 ​编辑 4、角色与目标属性 5、修改权限 5.1修改文件属性(chmod) 5.2修改文件角色(chown/chgrp) 6、rwx对目录意味着什么 7、Linux中多用户之间的相互“隔离” 8、Linux中的缺省权限 ​编辑 9…

uniapp对接极光推送,实现消息推送功能

通过集成JG-JPush和JG-JCore插件&#xff0c;可以在应用中添加消息推送功能&#xff0c;向用户发送通知、消息等。这对于提升用户体验、增加用户粘性非常有帮助‌。 效果图&#xff1a; 一、登录极光官网 官网链接&#xff1a;portalhttps://www.jiguang.cn/console/#/home点…

【3D Slicer】的小白入门使用指南八

3D Slicer DMRI(Diffusion MRI)-扩散磁共振认识和使用 0、简介 大脑解剖 ● 白质约占大脑的 45% ● 有髓神经纤维(大约10微米轴突直径) 白质探索 朱尔斯约瑟夫德杰林(Jules Joseph Dejerine,《神经中心解剖学》(巴黎,1890-1901):基于髓磷脂染色标本的神经解剖图谱)…

IP数据云 识别和分析tor、proxy等各类型代理

在网络上使用代理&#xff08;tor、proxy、relay等&#xff09;进行访问的目的是为了规避网络的限制、隐藏真实身份或进行其他的不正当行为。 对代理进行识别和分析可以防止恶意攻击、监控和防御僵尸网络和提高防火墙效率等&#xff0c;同时也可以对用户行为进行分析&#xff…

GPU分布式通信技术-PCle、NVLink、NVSwitch深度解析

GPU分布式通信技术-PCle、NVLink、NVSwitch 大模型时代已到来&#xff0c;成为AI核心驱动力。然而&#xff0c;训练大模型却面临巨大挑战&#xff1a;庞大的GPU资源需求和漫长的学习过程。 要实现跨多个 GPU 的模型训练&#xff0c;需要使用分布式通信和 NVLink。此外&#xf…

基于 PyTorch 从零手搓一个GPT Transformer 对话大模型

一、从零手实现 GPT Transformer 模型架构 近年来&#xff0c;大模型的发展势头迅猛&#xff0c;成为了人工智能领域的研究热点。大模型以其强大的语言理解和生成能力&#xff0c;在自然语言处理、机器翻译、文本生成等多个领域取得了显著的成果。但这些都离不开其背后的核心架…

数据集的重要性:如何构建AIGC训练集

文章目录 一、为什么数据集对AIGC如此重要&#xff1f;1. 数据决定模型的知识边界2. 数据质量直接影响生成效果3. 数据集多样性提升模型鲁棒性 二、构建AIGC训练集的关键步骤1. 明确目标任务和生成需求2. 数据源的选择3. 数据清洗与预处理4. 数据标注5. 数据增强 三、针对不同类…

全网首发:Ubuntu编译跨平台嵌入式支持ffmpeg的OpenCV

难题&#xff1a; 使用cmake编译&#xff0c;死活找不到ffmpeg 使用cmake-gui&#xff0c;能找到ffmpeg&#xff0c;不能编译。 解决思路 结合cmake和cmake-gui。 为了给初次编译的朋友一点方便&#xff0c;这里专门完整详细记录。 安装编译环境 其他的略。 apt -y in…

算法——两两交换链表中的节点(leetcode24)

这是一道对于链表节点进行操作的题目非常考验对于链表操作的基本功&#xff1b; 解法: 本题的解法结合下图来进一步解释 创建一个虚拟节点指向头结点以便使代码逻辑看起来更为简便且操作节点容易,定义cur是为了方便找到cur之后的两个节点进行交换操作定义pre和aft是为了保存执…

非对称加密算法RSA的实现

一、实验目的 1、了解非对称密码体制基本原理 2、掌握编程语言实现非对称加密、解密 二、实验原理 RSA加密算法是一种非对称加密算法&#xff0c;所谓非对称&#xff0c;就是指该算法加密和解密使用不同的密钥&#xff0c;即使用加密密钥进行加密、解密密钥进行解密。在RAS…

劳动力市场

1.劳动力市场概述 &#xff08;1&#xff09;劳动力&#xff1a;所有有工作能力且愿意工作的人的总称&#xff0c;由那些正在工作&#xff08;就业&#xff09;和正在寻找工作&#xff08;失业&#xff09;的人组成&#xff0c;表示为&#xff1a;L&#xff08;劳动力&#xf…