Linux中國

如何在 Fedora 上使用 Poetry 來管理你的 Python 項目?

Python 開發人員經常創建一個新的虛擬環境來分離項目依賴,然後用 pippipenv 等工具來管理它們。Poetry 是一個簡化 Python 中依賴管理和打包的工具。這篇文章將向你展示如何在 Fedora 上使用 Poetry 來管理你的 Python 項目。

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

下面詳細介紹一下開始使用 Poetry 時使用的命令。

在 Fedora 上安裝 Poetry

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

$ sudo dnf install poetry

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

rpm-ostree install poetry

初始化一個項目

使用 new 命令創建一個新項目:

$ poetry new poetry-project

用 Poetry 創建的項目結構是這樣的:

├── poetry_project
│   └── init.py
├── pyproject.toml
├── README.rst
└── tests
    ├── init.py
    └── test_poetry_project.py

Poetry 使用 pyproject.toml 來管理項目的依賴。最初,這個文件看起來類似於這樣:

[tool.poetry]
name = "poetry-project"
version = "0.1.0"
description = ""
authors = ["Kadermiyanyedi <kadermiyanyedi@hotmail.com>"]

[tool.poetry.dependencies]
python = "^3.9"

[tool.poetry.dev-dependencies]
pytest = "^5.2"

[build-system]
requires = ["poetry>=0.12"]
build-backend = "poetry.masonry.api"

這個文件包含 4 個部分:

  • 第一部分包含描述項目的信息,如項目名稱、項目版本等。
  • 第二部分包含項目的依賴。這些依賴是構建項目所必需的。
  • 第三部分包含開發依賴。
  • 第四部分描述的是符合 PEP 517 的構建系統。

如果你已經有一個項目,或者創建了自己的項目文件夾,並且你想使用 Poetry,請在你的項目中運行 init 命令。

$ poetry init

在這個命令之後,你會看到一個互動式的 shell 來配置你的項目。

創建一個虛擬環境

如果你想創建一個虛擬環境或激活一個現有的虛擬環境,請使用以下命令:

$ poetry shell

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

$ poetry config --list

cache-dir = "/home/username/.cache/pypoetry"
virtualenvs.create = true
virtualenvs.in-project = true
virtualenvs.path = "{cache-dir}/virtualenvs"

修改 virtualenvs.in-project 配置變數,在項目目錄下創建一個虛擬環境。Poetry 命令是:

$ poetry config virtualenv.in-project true

添加依賴

使用 poetry add 命令為項目安裝一個依賴:

$ poetry add django

你可以使用帶有 --dev 選項的 add 命令來識別任何只用於開發環境的依賴:

$ poetry add black --dev

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

使用 poetry install 命令來安裝當前項目中的所有依賴:

$ poetry install

通過使用 --no-dev 選項防止安裝開發依賴:

$ poetry install --no-dev

列出軟體包

show 命令會列出所有可用的軟體包。--tree 選項將以樹狀列出軟體包:

$ poetry show --tree

django 3.1.7 A high-level Python Web framework that encourages rapid development and clean, pragmatic design.
├── asgiref >=3.2.10,<4
├── pytz *
└── sqlparse >=0.2.2

包含軟體包名稱,以列出特定軟體包的詳細信息:

$ poetry show requests

name         : requests
version      : 2.25.1
description  : Python HTTP for Humans.

dependencies
 - certifi >=2017.4.17
 - chardet >=3.0.2,<5
 - idna >=2.5,<3
 - urllib3 >=1.21.1,<1.27

最後,如果你想知道軟體包的最新版本,你可以通過 --latest 選項:

$ poetry show --latest

idna     2.10      3.1    Internationalized Domain Names in Applications
asgiref  3.3.1     3.3.1  ASGI specs, helper code, and adapters

更多信息

Poetry 的更多詳情可在文檔中獲取。

via: https://fedoramagazine.org/how-to-use-poetry-to-manage-your-python-projects-on-fedora/

作者:Kader Miyanyedi 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國