自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何在 Fedora 上使用 Poetry 來管理你的 Python 項(xiàng)目?

系統(tǒng) Linux 后端
Python 開發(fā)人員經(jīng)常創(chuàng)建一個(gè)新的虛擬環(huán)境來分離項(xiàng)目依賴,然后用 pip、pipenv 等工具來管理它們。Poetry 是一個(gè)簡化 Python 中依賴管理和打包的工具。這篇文章將向你展示如何在 Fedora 上使用 Poetry 來管理你的 Python 項(xiàng)目。

[[387434]]

Python 開發(fā)人員經(jīng)常創(chuàng)建一個(gè)新的虛擬環(huán)境來分離項(xiàng)目依賴,然后用 pip、pipenv 等工具來管理它們。Poetry 是一個(gè)簡化 Python 中依賴管理和打包的工具。這篇文章將向你展示如何在 Fedora 上使用 Poetry 來管理你的 Python 項(xiàng)目。

與其他工具不同,Poetry 只使用一個(gè)配置文件來進(jìn)行依賴管理、打包和發(fā)布。這消除了對不同文件的需求,如 Pipfile、MANIFEST.insetup.py 等。這也比使用多個(gè)工具更快。

下面詳細(xì)介紹一下開始使用 Poetry 時(shí)使用的命令。

在 Fedora 上安裝 Poetry

如果你已經(jīng)使用 Fedora 32 或以上版本,你可以使用這個(gè)命令直接從命令行安裝 Poetry:

  1. $ sudo dnf install poetry

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

  1. rpm-ostree install poetry

初始化一個(gè)項(xiàng)目

使用 new 命令創(chuàng)建一個(gè)新項(xiàng)目:

  1. $ poetry new poetry-project

用 Poetry 創(chuàng)建的項(xiàng)目結(jié)構(gòu)是這樣的:

  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 來管理項(xiàng)目的依賴。最初,這個(gè)文件看起來類似于這樣:

  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"

這個(gè)文件包含 4 個(gè)部分:

  • 第一部分包含描述項(xiàng)目的信息,如項(xiàng)目名稱、項(xiàng)目版本等。
  • 第二部分包含項(xiàng)目的依賴。這些依賴是構(gòu)建項(xiàng)目所必需的。
  • 第三部分包含開發(fā)依賴。
  • 第四部分描述的是符合 PEP 517 的構(gòu)建系統(tǒng)。

如果你已經(jīng)有一個(gè)項(xiàng)目,或者創(chuàng)建了自己的項(xiàng)目文件夾,并且你想使用 Poetry,請?jiān)谀愕捻?xiàng)目中運(yùn)行 init 命令。

  1. $ poetry init

在這個(gè)命令之后,你會(huì)看到一個(gè)交互式的 shell 來配置你的項(xiàng)目。

創(chuàng)建一個(gè)虛擬環(huán)境

如果你想創(chuàng)建一個(gè)虛擬環(huán)境或激活一個(gè)現(xiàn)有的虛擬環(huán)境,請使用以下命令:

  1. $ poetry shell

Poetry 默認(rèn)在 /home/username/.cache/pypoetry 項(xiàng)目中創(chuàng)建虛擬環(huán)境。你可以通過編輯 Poetry 配置來更改默認(rèn)路徑。使用下面的命令查看配置列表:

  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 配置變量,在項(xiàng)目目錄下創(chuàng)建一個(gè)虛擬環(huán)境。Poetry 命令是:

  1. $ poetry config virtualenv.in-project true

添加依賴

使用 poetry add 命令為項(xiàng)目安裝一個(gè)依賴:

  1. $ poetry add django

你可以使用帶有 --dev 選項(xiàng)的 add 命令來識(shí)別任何只用于開發(fā)環(huán)境的依賴:

  1. $ poetry add black --dev

add 命令會(huì)創(chuàng)建一個(gè) poetry.lock 文件,用來跟蹤軟件包的版本。如果 poetry.lock 文件不存在,那么會(huì)安裝 pyproject.toml 中所有依賴項(xiàng)的最新版本。如果 poetry.lock 存在,Poetry 會(huì)使用文件中列出的確切版本,以確保每個(gè)使用這個(gè)項(xiàng)目的人的軟件包版本是一致的。

使用 poetry install 命令來安裝當(dāng)前項(xiàng)目中的所有依賴:

  1. $ poetry install

通過使用 --no-dev 選項(xiàng)防止安裝開發(fā)依賴:

  1. $ poetry install --no-dev

列出軟件包

show 命令會(huì)列出所有可用的軟件包。--tree 選項(xiàng)將以樹狀列出軟件包:

  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

包含軟件包名稱,以列出特定軟件包的詳細(xì)信息:

  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 選項(xiàng):

  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

 

 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2021-07-25 10:34:17

FedoraPodmanLinux

2024-03-05 10:45:07

PoetryPython開發(fā)

2023-11-26 16:23:16

FedoraVSCodium

2018-11-06 09:24:55

LinuxLutries命令

2021-11-28 06:33:24

Discord消息收發(fā)應(yīng)用 Linux

2021-08-18 11:19:25

FedoraLinuxJava

2018-05-14 08:36:06

JavaFedoraOpenJDK

2018-06-11 09:55:09

LinuxFedorazsh

2019-03-31 17:28:37

Arch LinuxLinux鏡像

2020-12-28 06:44:45

FedoraLinux RPM文件

2015-06-01 12:19:03

FedoraCentOSSamba

2012-08-09 16:37:45

服務(wù)器管理Rex

2012-05-22 15:19:55

Rex服務(wù)器管理

2020-03-02 18:16:12

FedoraLinuxMongoDB

2019-07-16 19:00:00

Ansible配置自動(dòng)化

2019-07-13 14:21:04

LinuxShell命令

2014-07-14 09:24:51

Debiansystemd

2014-10-11 11:30:43

CentOSDocker

2020-06-15 18:20:37

Fedora電子書開源

2019-07-16 16:40:00

Ansible工作站配置
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號