Rozwiązanie błędów pewnie można gdzieś znaleźć na stronie z instrukcją https://python-poetry.org/docs/ jednakże pomiędzy poleceniami nie znalazłem na szybko rozwiązań problemów na jakie napotkałem po drodze. Poniżej opiszę (głównie dla siebie na przyszłość) co zrobić jak pojawią się takie problemy.
Problem nr 1: Brak polecenia “python”
Błąd jaki wyskakuje podczas próby zainstalowania poetry bez polecenia “python”:
user@server:~$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python - -bash: python: nie znaleziono polecenia curl: (23) Failure writing output to destination
Jeżeli natrafiamy na problem opisany powyżej i nie możemy zainstalować poetry bo nie znajduje nam polecenia “python” to łatwo to “naprawić”.
W każdym nowym (a nawet w troszkę starszych) wersjach dystrybucji Debiana jest zainstalowany Python 3. Wystarczy użyć go do instalacji.
Rozwiązanie dla problemu nr 1:
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3 -
Oczywiście możemy to rozwiązać także poprzez rozbicie polecenia na dwa lekko zmodyfikowane polecenia:
wget https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py python3 get-poetry.py
Problem nr 2: Brak modułu “distutils.util”
Błąd pojawiający się w momencie kiedy chcemy wydać jakiekolwiek polecenie używając poetry:
user@server:~$ poetry --help Traceback (most recent call last): File "/home/user/.poetry/bin/poetry", line 17, in <module> from poetry.console import main File "/home/user/.poetry/lib/poetry/console/__init__.py", line 1, in <module> from .application import Application File "/home/user/.poetry/lib/poetry/console/application.py", line 7, in <module> from .commands.about import AboutCommand File "/home/user/.poetry/lib/poetry/console/commands/__init__.py", line 4, in <module> from .check import CheckCommand File "/home/user/.poetry/lib/poetry/console/commands/check.py", line 2, in <module> from poetry.factory import Factory File "/home/user/.poetry/lib/poetry/factory.py", line 18, in <module> from .repositories.pypi_repository import PyPiRepository File "/home/user/.poetry/lib/poetry/repositories/pypi_repository.py", line 33, in <module> from ..inspection.info import PackageInfo File "/home/user/.poetry/lib/poetry/inspection/info.py", line 25, in <module> from poetry.utils.env import EnvCommandError File "/home/user/.poetry/lib/poetry/utils/env.py", line 20, in <module> import packaging.tags File "/home/user/.poetry/lib/poetry/_vendor/py3.8/poetry/core/_vendor/packaging/tags.py", line 7, in <module> import distutils.util ModuleNotFoundError: No module named 'distutils.util'
Aby naprawić ten problem wystarczy doinstalować brakującą bibliotekę jednym z menadżerów np apt-get czy aptitude. Problem ten występuje najczęściej na niedawno zainstalowanych komputerach. W moim przypadku wystąpił na jednym z serwerów który niedawno postawiłem.
Rozwiązanie dla problemu nr 1:
sudo apt-get install python3-distutils # lub: sudo aptitude install python3-distutils
Po naprawieniu występujących problemów można zacząć używać poetry i cieszyć się czystym odizolowanym środowiskiem pythonowym.
Powodzenia 🙂