07 Ubuntu中使用poetry工具管理python环境——巨详细!!!

这篇具有很好参考价值的文章主要介绍了07 Ubuntu中使用poetry工具管理python环境——巨详细!!!。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

由于conda和ros2的环境实在太容易冲突了。我真的不敢再使用conda,着实是有些搞不明白这解释器之间的关系。

conda的卸载和ros2的安装暂不赘述,下面着重来说如何在Ubuntu中使用poetry进行包管理及遇到的问题。

1 安装poetry

由于在有写入权限的限制,在Ubuntu中想直接安装一个poetry实在是太困难了,下面介绍几种安装的情况。下面这几个命令先别急着复制安装,我使用的是最后一种。

1.0 官方下载方式

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

1.1 本地用户的临时环境

pip install -i --user  https://pypi.tuna.tsinghua.edu.cn/simple poetry

这个指令将会把poetry安装到当前用户的.local文件夹下,但是遗憾的是没有添加环境变量,我们虽然可以成功安装,但是却不能够使用它。

从理论上来讲,如果我们将./local/bin下的路径添加到终端的环境变量的话,那么我们应该是可以使用poetry命令的。

1.2 sudo命令安装——root用户的临时环境

可以看到,上面的方法中制定了‘--user’参数将包安装到当前用户,如果使用

sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple poetry

来安装的话,那么就会安装到/root/.local下。但是也是没有添加环境变量的。

所以我推荐下面的方法。虽然在你的电脑上直接安装不一定就会有权限限制,但是如果是使用下面这种安装方法那么几乎是必然不会出问题的。毕竟我这前疮百孔的环境都能装(是的,虽然是前前天才重装的系统,但是已经玩脱好几次了)。

1.3 python -m 安装

python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple poetry

这样之后应该就可以使用poetry了,但是不是使用poetry,而是使用

python -m poetry

07 Ubuntu中使用poetry工具管理python环境——巨详细!!!,从装硬盘开始的环境搭建,ubuntu,python,linux

 如果每次都使用这个的话,难免会有些麻烦,这个时候我们就可以使用zsh的别名功能了。

要创建别名,请在终端中执行以下命令:

alias mypt='python -m poetry'

这将创建一个名为mypt的别名,将其映射到python -m poetry命令。 但是这样只能将别名应用到当前终端,要想一直能用,要添加到./zshrc文件中。

07 Ubuntu中使用poetry工具管理python环境——巨详细!!!,从装硬盘开始的环境搭建,ubuntu,python,linux

要使用别名,请在终端中输入别名名称并按回车键。例如,要使用mypt别名来运行poetry,在终端中执行以下命令:

mypt --version

这将显示poetry的版本号。平常我们也可以使用别名来简化经常使用的命令,或者将复杂的命令映射到易于记忆的名称。

07 Ubuntu中使用poetry工具管理python环境——巨详细!!!,从装硬盘开始的环境搭建,ubuntu,python,linux

 如果是在bash中的话,那么应该也可以靠软链接达到同样的效果。 

2 使用poetry进行环境管理

2.1 poetry init

poetry init是一个用于创建新Python项目的命令。它会在当前目录中创建一个pyproject.toml文件,该文件包含有关项目的元数据和依赖项的信息。pyproject.toml是poetry项目的核心配置文件,它描述了项目如何构建、测试和运行,并列出了项目所需的依赖项和版本约束条件。下面我们来进行尝试,我在mmdetection的仓库中进行尝试。

07 Ubuntu中使用poetry工具管理python环境——巨详细!!!,从装硬盘开始的环境搭建,ubuntu,python,linux

可以看到,在初始化之后,这个工具会询问一些信息。

Would you like to define your main dependencies interactively? (yes/no)

poetry init命令的一个提示,询问是否想要交互式地定义项目的主要依赖项。

如果选择回答“yes”,则poetry init命令将向你询问要添加的依赖项。你可以根据需要添加依赖项的名称、版本范围、Git URL或其他信息来添加。就像选择yes之后的情况一样,跟着走就行了。

如果您选择回答“no”,则poetry init命令将使用默认设置创建pyproject.toml文件,并在其中包含一个空的依赖项列表。你可以待会儿使用poetry add命令手动添加依赖项。

 最后,它会生成pyproject.toml文件。07 Ubuntu中使用poetry工具管理python环境——巨详细!!!,从装硬盘开始的环境搭建,ubuntu,python,linux

 2.2 poetry install

用下面的命令把toml文件“变现”

poetry install

这将根据 `pyproject.toml` 文件中指定的依赖项安装所需的所有包,以及它们的依赖项。默认情况下,这将在一个名为 `.venv` 的虚拟环境中安装依赖项。如果您需要将依赖项安装到全局环境中,可以使用 `--no-virtualenv` 标志。

运行时首先会爆出位置,方便我以后删了它。

Creating virtualenv mmdetrely-kp0XzG9G-py3.10 in /home/zhaocake/.cache/pypoetry/virtualenvs

如果你要更改虚拟环境的位置,可以使用 `--path` 标志指定自定义路径,例如:

poetry install --path /path/to/custom/venv

这将在 `/path/to/custom/venv` 中创建虚拟环境并安装依赖项。

2.3 poetry shell

使用这个命令激活虚拟环境

07 Ubuntu中使用poetry工具管理python环境——巨详细!!!,从装硬盘开始的环境搭建,ubuntu,python,linux

 使用shell退出虚拟环境。

而且很离谱的一点是,在下载包的时候,明明看见很多包都下载的是macosx的版本,但是竟然真的可以安装和使用。可能poetry真的是一个很务实的包管理工具吧。

2.4 poetry add

首先,要理解这个命令的参数,就要理解依赖项

在 Poetry 中,有三种类型的依赖项:

  1. 生产依赖项(默认类型):这些是您的项目所必需的依赖项,用于构建和运行项目。
  2. 开发依赖项:这些是用于开发、测试和维护项目的依赖项,例如测试框架、文档生成器等。开发依赖项不会被包含在项目构建中,而是在开发过程中使用。
  3. 可选依赖项:这些是您的项目可以使用但不是必需的依赖项。例如,如果您的项目可以在不同的数据库上运行,则可能存在多个数据库适配器,其中一些是可选的。

该命令的语法为 

poetry add <package>[@<version>] [--dev] [--optional]

其中 <package> 是要添加的依赖包的名称,<version> 是可选的版本号。如果没有指定版本号,Poetry 将使用 ^ 符号自动添加一个版本约束符号。

--dev 标志表示将包添加到开发依赖项中,而不是默认的生产依赖项中。--optional 标志表示将包添加到可选依赖项中。

并且因为在虚拟环境中没有poetry,你需要先推出虚拟环境,再执行命令。执行命令后要重新使用poetry install! 

2.5 poetry update

如果不是使用上面的add修改包,而是直接编辑了toml文件的话,再运行install就会报错了,这个时候要使用的命令是update.

07 Ubuntu中使用poetry工具管理python环境——巨详细!!!,从装硬盘开始的环境搭建,ubuntu,python,linux

其他

1 poetry换源

由于常规来说下载包速度确实挺慢,所以我们要换源。

依然是熟悉的清华镜像,这个真的好用。

2 安装pytorch

我知道很多看我文章的朋友是要碰pytorch的,别的不说,pytorch作为当前数一数二的深度学习框架,多多少少还是要在这里提一句。

poetry对pytorch的支持目前可并不友好。我的建议是先把虚拟环境创建下来,再把pytorch用pip安装,虽然这样对包的管理很不到位,但也不失为一种解决办法。或者就使用其他的包管理工具也是不错的。

这是一篇整理自issue的可能的pytorch的poetry安装方式,并且我尝试,有在云机器上成功,但是在本地似乎依然有下载一些莫名奇妙的东西的可能。

Poetry安装pytorch || 整理自github项目Poetry下的issue_早上真好的博客-CSDN博客

 07 Ubuntu中使用poetry工具管理python环境——巨详细!!!,从装硬盘开始的环境搭建,ubuntu,python,linux文章来源地址https://www.toymoban.com/news/detail-625638.html

到了这里,关于07 Ubuntu中使用poetry工具管理python环境——巨详细!!!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu环境下使用APT安装Jenkins(详细教程)

    目录 1、安装JDK         1.1、使用APT查找已安装的JDK          1.2、若没有JDK11,则需要安装 2、使用war包或者APT两种安装方式         2.1、war包安装(推荐,方法简单,配置使用JDK)         2.2、APT安装 3、配置Jenkins         3.1、初始化Jenkins         3.2、系统配置

    2024年02月08日
    浏览(25)
  • 在Ubuntu-12.04环境下使用新的Rust开发工具

    在老旧的系统环境下使用Rust开发工具 笔者的一台硬件资源紧张的旧电脑安装了Ubuntu-12.04,希望在其上运行比较新的Rust开发工具,但却发现其因glibc较老,不能正常运行cargo工具,结果如下: 如上, cargo 可执行文件对 glibc 最低版本要求是 GLIBC_2.17 ,而Ubuntu-12.04系统的 glibc 版

    2024年02月20日
    浏览(27)
  • 【服务器管理】Ubuntu20.04安装包管理工具module配置并且使用

    module 是一个专门管理环境变量的工具,全称是module environment,一般应用于软件或运行库等设备有多个版本,且需要分别配置这些环境变量。其官网为: https://modules.readthedocs.io/en/latest/index.html 通常,对于多版本的软件包,我们可以通过修改 ~/.bashrc 文件,通过修改 PATH 、 LD_LI

    2024年02月09日
    浏览(37)
  • 基于Jenkins+Python+Ubuntu+Docker的接口/UI自动化测试环境部署详细过程

    学习官网:Jenkins官网,Jenkins中文官网; Jenkins 是一款开源 CICD 软件,用于自动化各种任务,包括构建、测试和部署软件; 用 Java 语言编写的,可在 Tomcat 、 Docker 等流行的容器中运行,也可独立运行。 通俗的讲,比如把编译、打包、上传、部署到Tomcat中的过程交由Jenkins,

    2024年02月13日
    浏览(41)
  • 解决虚拟机环境下使用Ubuntu自带的图形化工具创建的磁盘分区无法扩容的问题

    解决虚拟机环境下使用Ubuntu自带的图形化工具创建的磁盘分区无法扩容的问题 先来个结论:不要使用 Ubuntu 自带的图形化磁盘工具创建分区,磁盘分区操作请使用 fdisk 等工具。 正文太长不想看的记住这个结论就行,有兴趣的接着看。 首先介绍一下磁盘的基本配置,vmware中创

    2024年01月18日
    浏览(32)
  • Ubuntu20.04安装配置gitlab及使用git管理代码超详细教程

    目录 简介 安装教程 安装gitlab 配置Gitlab  登录gitlab  gitlab内存优化  创建用户  创建群组 添加成员进群组 管理群组成员权限   创建项目 分支管理  使用git bash工具 下载git bash 上传代码 使用sourceTree工具创建分支 提交分支 gitlab服务器邮箱的配置(可选) 今日推荐  GitLab是

    2024年02月21日
    浏览(79)
  • 使用Portainer图形化工具轻松管理远程Docker环境并实现远程访问

    Portainer 是一个轻量级的容器管理工具,可以通过 Web 界面对 Docker 容器进行管理和监控。它提供了可视化的界面,使得用户可以更加方便地管理 Docker 容器、镜像、网络和数据卷等资源。下面介绍如何将本地Portainer 管理界面结合cpolar内网穿透工具实现远程任意浏览器访问! 远程

    2024年02月08日
    浏览(44)
  • 项目管理工具-SVN(SubVersion)下载安装/基本详细具体使用步骤

    目录 前言 SVN简介: 1.什么是SVN? 2.下载服务端  Apache Subversion Binary Packages 进入网址后,滚动到浏览器最底部看到如下截图 下载TortoiseSvn--​编辑 3.下载地址客户端         https://tortoisesvn.net/downloads.html  4.检验客户端是否下载成功 5. 文件检出步骤 如果图片不见了,先重启

    2024年02月12日
    浏览(35)
  • DAY07_Maven高级——分模块开发与设计&依赖管理&聚合与继承&属性管理&多环境配置与应用&私服

    问题导入 分模块开发对工程有什么好处? 模块拆分原则 目的:项目的扩展性变强了,方便其他项目引用相同的功能。 将原始模块按照功能拆分成若干个子模块,方便模块间的相互调用,接口共享 问题导入 一个完整的工程依据什么来进行模块的拆分? 2.1 创建Maven模块 2.2 书

    2024年02月09日
    浏览(35)
  • 2023 年前端编程 NodeJs 包管理工具 npm 安装和使用详细介绍

    npm is the world’s largest software registry. Open source developers from every continent use npm to share and borrow packages, and many organizations use npm to manage private development as well. npm 官方网站:https://www.npmjs.com 下载好 Node 后我们就可以使用npm命令进行包的管理,接下来打开终端: 检查Node版本 npm view

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包