Poetry | Quản lý gói python cho Django, Flask

1. Cài đặt Poetry ( osx / linux / bashonwindows)

curl -sSL https://install.python-poetry.org | python3 -
Gỡ cài đặt

Để gỡ cài đặt Poetry, chỉ cần chạy lại lệnh cài đặt và thêm --uninstall

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

https://python-poetry.org/

2. Thêm Poetry vào PATH của bạn
Trình cài đặt Poetry sẽ cài đặt công cụ poetry vào thư mục bin . Vị trí này phụ thuộc vào hệ thống của bạn:

  • $HOME/.local/bin cho Unix
  • %APPDATA%\Python\Scripts trên Windows

Nếu thư mục này không có trong thư mục của bạn PATH , bạn sẽ cần phải thêm nó theo cách thủ công nếu bạn muốn gọi Poetry bằng cách đơn giản poetry .

Kiểm tra tệp .profile, nếu có nội dung bên dưới, bạn sẽ không cần làm gì cả, nếu chưa có, hãy thêm nó vào:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

Chạy source ~/.profile để PATH có hiệu lực.

3. Kiểm tra cài đặt

poetry --version

Nếu bạn thấy một cái gì đó giống như Poetry version 1.1.13 thì bạn đã sẵn sàng để sử dụng Poetry.

Bật tính năng hoàn thành tab cho Bash, Fish hoặc Zsh

# Bash
poetry completions bash > /etc/bash_completion.d/poetry

# Fish
poetry completions fish > ~/.config/fish/completions/poetry.fish

# Zsh
poetry completions zsh > ~/.zfunc/_poetry

# Oh-My-Zsh
mkdir $ZSH_CUSTOM/plugins/poetry
poetry completions zsh > $ZSH_CUSTOM/plugins/poetry/_poetry

# prezto
poetry completions zsh > ~/.zprezto/modules/completion/external/src/_poetry

Đối với zsh , sau đó bạn phải thêm dòng sau vào tệp ~/.zshrc của bạn trước compinit :

fpath+=~/.zfunc

Đối với oh-my-zsh , sau đó bạn phải bật poetry trong ~/.zshrc phần plugin của mình

plugins(
	poetry
	...
	)

và thêm vào dưới cùng

export PATH="$HOME/.local/bin:$PATH"

Poetry tạo môi trường biệt lập cho dự án của bạn, ở thư mục mặc định của Poetry hoặc trong thư mục dự án (được tắt theo mặc định).
Để tạo Poretry tạo môi trường trong thư mục dự án, chạy lệnh sau để cấu hình cho Poetry:

poetry config virtualenvs.in-project true

để xem các cấu hình:

poetry config --list

Tích hợp Poetry với dự án hiện có

cd đến thư mục gốc của dự án

cd pre-existing-project
poetry init

Đầu ra sẽ như ví dụ sau:

This command will guide you through creating your pyproject.toml config.

Package name [djmongo]:  
Version [0.1.0]:  
Description []:  django and mongodb
Author [datvnn <...@gmail.com>, n to skip]:  
License []:  
Compatible Python versions [^3.10]:  

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

Hãy điền một số thông tin hoặc nhấn Enter để nhận giá trị mặc định

Lệnh poetry init sẽ tạo tệp pyproject.toml và môi truờng ảo .venv
Kích hoạt môi trường ảo bằng cách chạy poetry shellexit để hủy kích hoạt.

Kiểm thông tin của môi trường ảo

poetry env info

Nếu bạn thấy phiên bản python không như ý bạn, (như python3.9) hãy chạy lệnh sau để thay đổi:

poetry env use 3.10

:warning: Với môi trường ảo được đặt trong thư mục dự án, nếu chuyển đổi môi trường như trên, bạn có thể mất các gói đã cài đặt, vì vậy hãy xác định nó ngay từ đầu hoặc bạn cũng có thể cài đặt lại nó từ tệp poetry.lock

Thêm các gói cho dự án

ví dụ:

poetry add django

Lệnh add thêm các gói bắt buộc vào pyproject.toml của bạn và cài đặt chúng.

  • Thêm gói vào một nhóm cụ thể, sử dụng --group hoặc -G
poetry add mkdocs --group docs
  • Đánh dấu gói là dùng cho phát triển
poetry add ipython -D

Xuất ra tệp requirements.txt

Lệnh này xuất tệp poetry.lock sang các định dạng khác.

poetry export -f requirements.txt --output poetry_requirements.txt
  • Bao gồm các gói phát triển
poetry export -f requirements.txt --output poetry_dev_requirements.txt --dev

Tùy chọn

  • --format (-f) : Định dạng để xuất sang (mặc định requirements.txt :). Hiện tại, chỉ requirements.txt được hỗ trợ.
  • --output (-o) : Tên của tệp đầu ra. Nếu bị bỏ qua, hãy in ở đầu ra tiêu chuẩn.
  • --dev : Bao gồm các phụ thuộc phát triển.
  • --extras (-E) : Các tập hợp phụ thuộc bổ sung cần bao gồm.
  • --without-hashes : Loại trừ hàm băm khỏi tệp đã xuất.
  • --without-urls : Loại trừ các url của kho lưu trữ nguồn khỏi tệp đã xuất.
  • --with-credentials : Bao gồm thông tin đăng nhập cho các chỉ số phụ.

Lock

lock các gói được chỉ định trong pyproject.toml với phiên bản tương thích mới nhất có sẵn (không cài đặt)

poetry lock
  • Chỉ làm mới tệp poetry.lock
poetry lock --no-update

Các lệnh hay dùng

Cài đặt các gói từ pyproject.toml

  • Cài đặt tất cả
poetry install
  • Loại trừ các nhóm cụ thể (test,docs)
poetry install --without test,docs 
  • Loại trừ các gói dùng trong phát triển
poetry install --without dev
  • Cài đặt các nhóm:
poetry install --with test,docs
  • Chỉ cài đặt các nhóm cụ thể:
poetry install --only test,docs
  • Chỉ cài đặt các gói dùng cho phát triển
poetry install --only dev