服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Fedora - 如何在 Fedora 上使用 Poetry 来管理你的 Python 项目?

如何在 Fedora 上使用 Poetry 来管理你的 Python 项目?

2021-03-14 23:15Linux中国 Fedora

Python 开发人员经常创建一个新的虚拟环境来分离项目依赖,然后用 pip、pipenv 等工具来管理它们。Poetry 是一个简化 Python 中依赖管理和打包的工具。这篇文章将向你展示如何在 Fedora 上使用 Poetry 来管理你的 Python 项目。

如何在 Fedora 上使用 Poetry 来管理你的 Python 项目?

Python 开发人员经常创建一个新的虚拟环境来分离项目依赖,然后用 pippipenv 等工具来管理它们。Poetry 是一个简化 Python 中依赖管理和打包的工具。这篇文章将向你展示如何在 Fedora 上使用 Poetry 来管理你的 Python 项目。

与其他工具不同,Poetry 只使用一个配置文件来进行依赖管理、打包和发布。这消除了对不同文件的需求,如 PipfileMANIFEST.insetup.py 等。这也比使用多个工具更快。

下面详细介绍一下开始使用 Poetry 时使用的命令。

在 Fedora 上安装 Poetry

 

如果你已经使用 Fedora 32 或以上版本,你可以使用这个命令直接从命令行安装 Poetry:

  1. $ sudo dnf install poetry

编者注:在 Fedora Silverblue 或 CoreOs上,Python 3.9.2 是核心提交的一部分,你可以用下面的命令安装 Poetry:

  1. rpm-ostree install poetry

初始化一个项目

 

使用 new 命令创建一个新项目:

  1. $ poetry new poetry-project

用 Poetry 创建的项目结构是这样的:

  1. ├── poetry_project
  2. └── init.py
  3. ├── pyproject.toml
  4. ├── README.rst
  5. └── tests
  6. ├── init.py
  7. └── test_poetry_project.py

Poetry 使用 pyproject.toml 来管理项目的依赖。最初,这个文件看起来类似于这样:

  1. [tool.poetry]
  2. name = "poetry-project"
  3. version = "0.1.0"
  4. description = ""
  5. authors = ["Kadermiyanyedi <kadermiyanyedi@hotmail.com>"]
  6.  
  7. [tool.poetry.dependencies]
  8. python = "^3.9"
  9.  
  10. [tool.poetry.dev-dependencies]
  11. pytest = "^5.2"
  12.  
  13. [build-system]
  14. requires = ["poetry>=0.12"]
  15. build-backend = "poetry.masonry.api"

这个文件包含 4 个部分:

  • 第一部分包含描述项目的信息,如项目名称、项目版本等。
  • 第二部分包含项目的依赖。这些依赖是构建项目所必需的。
  • 第三部分包含开发依赖。
  • 第四部分描述的是符合 PEP 517 的构建系统。

如果你已经有一个项目,或者创建了自己的项目文件夹,并且你想使用 Poetry,请在你的项目中运行 init 命令。

  1. $ poetry init

在这个命令之后,你会看到一个交互式的 shell 来配置你的项目。

创建一个虚拟环境

 

如果你想创建一个虚拟环境或激活一个现有的虚拟环境,请使用以下命令:

  1. $ poetry shell

Poetry 默认在 /home/username/.cache/pypoetry 项目中创建虚拟环境。你可以通过编辑 Poetry 配置来更改默认路径。使用下面的命令查看配置列表:

  1. $ poetry config --list
  2.  
  3. cache-dir = "/home/username/.cache/pypoetry"
  4. virtualenvs.create = true
  5. virtualenvs.in-project = true
  6. virtualenvs.path = "{cache-dir}/virtualenvs"

修改 virtualenvs.in-project 配置变量,在项目目录下创建一个虚拟环境。Poetry 命令是:

  1. $ poetry config virtualenv.in-project true

添加依赖

 

使用 poetry add 命令为项目安装一个依赖:

  1. $ poetry add django

你可以使用带有 --dev 选项的 add 命令来识别任何只用于开发环境的依赖:

  1. $ poetry add black --dev

add 命令会创建一个 poetry.lock 文件,用来跟踪软件包的版本。如果 poetry.lock 文件不存在,那么会安装 pyproject.toml 中所有依赖项的最新版本。如果 poetry.lock 存在,Poetry 会使用文件中列出的确切版本,以确保每个使用这个项目的人的软件包版本是一致的。

使用 poetry install 命令来安装当前项目中的所有依赖:

  1. $ poetry install

通过使用 --no-dev 选项防止安装开发依赖:

  1. $ poetry install --no-dev

列出软件包

 

show 命令会列出所有可用的软件包。--tree 选项将以树状列出软件包:

  1. $ poetry show --tree
  2.  
  3. django 3.1.7 A high-level Python Web framework that encourages rapid development and clean, pragmatic design.
  4. ├── asgiref >=3.2.10,<4
  5. ├── pytz *
  6. └── sqlparse >=0.2.2

包含软件包名称,以列出特定软件包的详细信息:

  1. $ poetry show requests
  2.  
  3. name : requests
  4. version : 2.25.1
  5. description : Python HTTP for Humans.
  6.  
  7. dependencies
  8. - certifi >=2017.4.17
  9. - chardet >=3.0.2,<5
  10. - idna >=2.5,<3
  11. - urllib3 >=1.21.1,<1.27

最后,如果你想知道软件包的最新版本,你可以通过 --latest 选项:

  1. $ poetry show --latest
  2.  
  3. idna 2.10 3.1 Internationalized Domain Names in Applications
  4. asgiref 3.3.1 3.3.1 ASGI specs, helper code, and adapters

原文地址:https://linux.cn/article-13202-1.html

延伸 · 阅读

精彩推荐
  • FedoraFC8下备份linux系统

    FC8下备份linux系统

    linux系统可以使用tar来备份。 我在FC8上装好了totem, mplayer, audacious, 并搞定了wifi后,我觉得该备份一下FC8系统。 IBM R31+TP-LINK 310G Windows XP+FC8 备份前在FC8下卸...

    脚本之家4282019-10-12
  • FedoraFedora20 32位系统中安装搜狗拼音输入法图文教程

    Fedora20 32位系统中安装搜狗拼音输入法图文教程

    这篇文章主要介绍了Fedora20 32位系统中安装搜狗拼音输入法图文教程,64位系统有一个RPM包可以直接安装,32位系统没有,所以要手动安装,需要的朋友可以参考下...

    Fedora技术网6102019-10-16
  • FedoraFC7中用yum自动搜索安装软件

    FC7中用yum自动搜索安装软件

    有些包在http://rpm.livna.org上,要先安装http://rpm.livna.org/livna-release-7.rpm这个包才能用yum安装 #yum install stardict mplayer gftp zip unrar multiget azureus amsn wine gnochm 不过...

    fedora教程网4832019-10-12
  • Fedorafedora8 linux挂载DVD光盘或ISO镜像为源的方法

    fedora8 linux挂载DVD光盘或ISO镜像为源的方法

    1、先挂载DVD光盘或ISO镜像文件 2、修改/etc/yum.repos.d/fedora.repo 用root权限修改/etc/yum.repos.d/fedora.repo,原文件的第一部分如下: [fedora] name=Fedora $releasever - $b...

    fedora教程网5802019-10-14
  • FedoraSamba中文显示乱码解决办法

    Samba中文显示乱码解决办法

    Samba显示中文乱码,添加下面的内容到smb.conf中 client code page = 936 dos charset = cp936 unix charset = cp936...

    脚本之家4112019-10-14
  • Fedora如何在 Fedora Linux 上安装 Brave 浏览器

    如何在 Fedora Linux 上安装 Brave 浏览器

    在本教程中,你将学习如何在 Fedora Linux 上安装 Brave。你还将学习如何更新和删除它。...

    Linux中国4552021-11-29
  • Fedorafedora7下共享上网

    fedora7下共享上网

    家里有2台机器,一台linux,一台xp,为了共享上网,linux作为主机,我安装的是fc7,下载firestarter,安装这个之前安装xmlparser。安装好了后,出来一个界面配...

    fedora教程网4332019-10-12
  • FedoraUbuntu和Fedora上通过图形化界面或源码安装软件包的方法

    Ubuntu和Fedora上通过图形化界面或源码安装软件包的方法

    这篇文章主要介绍了Ubuntu和Fedora上通过图形化界面或源码安装软件包的方法,Ubuntu和Fedora分别是Debian系和CentOS系Linux系统中自带桌面环境比较优秀的代表,需要...

    开源中文社区5212019-10-17