Projekt dostarcza prostego programu o nazwie greet. Po jego uruchomieniu wyświetla napis demoapp.library is greeting you! w kolorze czerwonym.
Projekt ma zależności w postaci pakeitu colroama.
Ale... projekt nie jest kompletny. Twoim zadaniem jest uzupełnienie go o brakujace elementy.
-
Pobierz repozytorium:
git clone ...
-
Stwórz środowisko wirtualne i je aktywuj:
virtualenv venv_demo . venv_demo/bin/activate -
Zainstaluj projekt:
cd demoapp pip install .
-
Uruchom program, wynik powinien być taki (lub bardzo podobny) jak na poniżej:
greet
Traceback (most recent call last): File "/tmp/venv/bin/greet", line 689A 5, in <module> from demoapp.executable import main File "/tmp/venv/lib/python3.13/site-packages/demoapp/executable.py", line 1, in <module> from .library import foo File "/tmp/venv/lib/python3.13/site-packages/demoapp/library.py", line 1, in <module> from colorama import Fore, Back, Style ModuleNotFoundError: No module named 'colorama' -
Zobaczmy informacje o projekcie:
pip show demoapp
Name: demoapp Version: 0.0.1 Summary: Home-page: Author: Author-email: License: Location: /tmp/venv/lib/python3.13/site-packages Requires: Required-by:
-
Na początek dodaj odpowiedni
.gitignoreaby odizolować wszystkie pliki tymczasowe powstające w trakcie procesu rozwoju, budowania i instalowania projektu: https://github.com/github/gitignore/blob/main/Python.gitignore Pobież plik i dodaj do repozytorium. -
Proces instalacji stworzył skrypt o nazwie
greet, którego nie ma w źródłach projektu. Sprawdź zawartość tego skryptu. Najpierw znajdz ścieżkę do tego pliku poleceniemwhich greet, a potem podejrzyj kod tego pliku. -
Zadbaj, aby pakiet podczas instalacji instalował również zależność
colorama. Wtedy poleceniegreetwykona się bez problemów. -
Uzupełnij informacje o autorze swoimi danymi, dla przykładu:
Name: demoapp Version: 0.0.1 Summary: Short app to demonstrate redistrutable projects. Home-page: https://www.example.com Author: Awesome Programer Author-email: awesome@example.com License: MIT Location: /tmp/venv/lib/python3.13/site-packages Requires: colorama Required-by: -
Uzupełnij
pyproject.tomlo wsparcie dlapytest, aby mogly się uruchamiać poleceniempython -m pytestlub po prostupytest.Przydatne linki:
-
Dodaj wsparcie dla
tox. Wykorzystaj pliktox.iniz poprzednich zajeć, ale włącz go wpyproject.toml: -
Dodaj te pakiety:
pytest,tox(może również linterypylint,flake8i formaterblack) jako opcjonalne zależności typu development (nie są potrzebne do uruchomienia - czyli również do instalacji, ale do pracowania nad projektem). -
Przenieś tę wiedzę na swój projekt zaliczeniowy. Być może będziesz musiał dostosować strukturę swojego projektu. Rozważ aby zastosować jeden z dwóch modeli
src-layoutlubflat-layout: https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/#src-layout-vs-flat-layout. Sprawdz, który layout jest użyty w tym prostym projekcie.