pyproject.toml i ustawienie projektu
src/safesort jest importowany, pyproject.toml opisuje Projekt i editable install łączy go z aktualnym środowiskiem.
Łatwo tu połączyć cztery różne obiekty. Importowana paczka
src/safesort/ zawiera __init__.py
i moduły, które Python ładują z import safesort.
Projekt (project) to biblioteka lub aplikacja zaprojektowana dla
opakowanie; drzewo projektu źródłowego (project source tree) — jego pliki na
dysku: pyproject.toml, src/,
tests/ i dokumentacja. Pakiet dystrybucyjny
(distribution package) to instalowalna wersja projektu; jeśli chodzi o konkretny
To jest archiwum dystrybucji: wheel lub sdist. Zainstalowany projekt —
Co pojawia się w środowisku Python po instalacji: pliki importowanego pakietu plus
metadane, na których narzędzia takie jak
pip oraz importlib.metadata się dowiedzą
o nim.
W src-layout momencie uruchomienie Python z rootu repozytorium nie dodaje
src/ w sys.path. Dlatego, aż do czasu
Instalacje import safesort zwykle się kończy
ModuleNotFoundError. Jest to właściwość oczekiwana układu, a nie
znak, że __init__.py „nie zadziałało”
[project]
name = "safesort"
version = "0.1.0"
description = "A safe, non-destructive command-line file organizer."
dependencies = []
[project.scripts]
safesort = "safesort.cli:main"
Pole version koniecznie identyfikuje aktualną wersję
Pakiet. Na razie po prostu zapiszmy 0.1.0 jako liczba pierwszych edukacyjnych
wersje. Jak ułożone są numery wersji i dlaczego są trzy cyfry – przeanalizujmy to bliżej końca
Projekt.
String safesort = "safesort.cli:main" mówi do instrumentu
Ustawienia: Po instalacji stwórz zespół w środowisku safesort,
która nazywa main() z modułu
safesort.cli. Ten moduł jeszcze nie istnieje; napiszemy to
na następnej stronie.
pathlib, argparse, hashlib, shutil oraz json są zawarte w standardowej bibliotece Python.Zainstaluj projekt w trybie edycji
Edytowalna instalacja (editable install) łączy środowisko
Python bezpośrednio do kodu źródłowego projektu: zmiany w plikach
src/safesort/ są widoczne natychmiast, bez konieczności ponownego montażu.
python -m pip install -e ".[dev]"
python -c "import safesort; print(safesort.__file__)"
safesort --help