Язык программирования, без подходящего интерпретатора или компилятора мало интересен. Да и программы нужно не только запускать — их нужно доставлять до пользователя в виде готового продукта, и редкая программа бывает сразу готова, нужно обновлять, продолжать разрабатывать — иногда в течении нескольких лет.Периодически возникают ситуации, когда нужно обновить какие-то сторонние библиотеки, а иногда и сам компилятор или интерпретатор. Для решения всех подобных задач применительно кPython появились и развивались различные инструменты. О некоторых из них ниже пойдёт речь.
Большинство инструментов имеет хорошую документацию, поэтому информация о них будеть ознакомительная.
Обычно, при разработке автор некоторой библиотеки или программы так или иначе указывает версии сторонних пакетов, которые требуются для работы его творения. Обычно версия не закрепляется жёстко, вместо этого указывается диапазон версий, в пределах которого можно ожидать, что совместимость разных частей кода не нарушится. Именно для этого часто используется семантическое версионирование.
Однако случается, что либо диапазон версий бывает указан слишком широкий, либо семантическое версионирование оказывается применено неверно, или же просто в какой-то версии некоего пакета оказывается ошибка. Возникает ситуация, когда проект работает как нужно не на любом из сочетаний разных версий пакетов, а на некотором вполне конкретном.
lock-файл как раз и предназначен для того, чтобы в дополнение к перечню пакетов с "нечёткими" версиями, таки зафиксировать список конкретных версий, которые в данный момент для проекта подходят! В том или ином виде lock-files сейчас используются большинством современных пакетных менеджеров для разных языков программирования.
Даже на этапе обучения важно иметь актуальную версию интерпретатора. И Python, будучи языком, который давно начали использовать для нужд автоматизации, часто бывает доступен в каталогах пакетов различных ОС. Однако пакеты как правило содержат только CPython (а ведь есть и другие реализации интерпретаторовPython, очень полезные в различных ситуациях), и далеко не всегда "свежий".
Авторы библиотек часто вынуждены поддерживать несколько версий Python и проверять, что новые изменения, вносимые в код, не сказываются на работоспособности оного при работе с разными версиями Python.
Т.о. на одной машине может быть установлено несколько разных реализацийPython и каждая — в более чем одном варианте. А управлять всем этим "серпентарием" призван pyenv. Как бы вы не использовалиPython, вам стоит научиться использовать этот инструмент.
Да, авторы pipenv так про своё детище и пишут. Что же это за штука? pipenv берёт на себя
pip (но использует "под капотом");venv);pipenv — инструмент мощный, но требующий умения использовать distutils/setuptools для описания процесса сборки пакета с проектом. Новичкам может быть сложно освоить именно этот аспект использования в остальном достаточно удобной программы.
По ссылке выше вы найдёте сайт с подробнейшей документацией, советую хотя бы заглянуть туда.
poetry, это сравнительно молодой проект, упрощающий разработку наPython. В целом он решает все те же проблемы (и тоже использует lock-файлы), что решает и pipenv, но в отличие от последнего, берёт на себя сборку пакетов. Более того, вместе с poetry вам не нужно глубоко погружаться в изучение distutils/setuptools — оные вообще не используются при описании poetry-пакета!
Документация у poetry компактная, но очень понятная.
Важно: напоминаю, я буду предполагать в дальнейших курсах и проектах использование именно poetry!
Python REPL довольно удобен, а главное — всегда доступен. Но использовать его для ввода большого кол-ва кода неудобно (даже многострочный код не поредактируешь нормально!). Однако REPL вPython сделан модульным и существует несколько "улучшенных версий", наиболее популярная из которых — ipython.
ipython имеет
Большинство разработчиков, занимающихся анализом данных, проводят в ipython большую часть своего рабочего времени — настолько это мощная и полезная оболочка!
Вокруг базового инструментарияPython за десятилетия существования языка было создано огромное количество полезностей. И благодаря тому, что вPython-мире правила хорошего тона предполагают тщательное документирование кода и сам синтаксис к этому располагает (всё те же docstrings), практически любой инструмент можно освоить самостоятельно!Откройте сайт PyPI и ознакомтесь со списком тем (topics), чтобы найти интересные проекты, способные сильно упростить жизнь и просто сделать процесс разработки и изучения более приятным!