Comments 5
Я уверен что это было интересно писать, но как девопс, ставящий пайтон приложи в том числе и оффлайн - не вижу смысла в еще одной тулзе, я или поднимаю локальный devpi, где необходимые пакеты уже отзеркалены или сразу собираю пакет/бинарь со всеми зависимостями.
Спасибо за взгляд со стороны девопса! Да, для инженера с поднятым devpi это действительно может показаться оверхедом — полностью согласен. PyOffline2 и не конкурирует с devpi, а скорее для тех, кому зеркало поднимать неудобно или нецелесообразно: соло-разработчики, новички, хобби-проекты. По сути, это «бедный devpi» в одной папке И да, вы абсолютно правы, это было реально очень интересно писать, это повысило мои компетенции в той области которая казалась мне сложной
🙂 Рад, что заглянули.
Чем эта штука отличается от uv (кеширующей зависимости)?
Хороший вопрос! Разница принципиальная.
uv кеширует зависимости, но ему нужен интернет для первой загрузки и для Python. PyOffline2 позволяет один раз создать автономный архив и работать полностью без сети.
Главные отличия:
Python из коробки. uv скачивает Python при первой необходимости. PyOffline2 хранит портативные сборки Python в архиве. При условии скачивания их заранее (пока есть интернет в архив). Тоже самое и с пакетами.
Полная офлайн-работа. С uv — только то, что уже в кеше. PyOffline2 не лезет в сеть после создания архива.
Не замена, а дополнение. Я сам использую uv ежедневно. PyOffline2 — для случаев, когда интернета нет или он очень плохой.
Важное уточнение: у uv есть флаг --offline, но, по моему субъективному опыту, организовать с ним стабильную офлайн-работу оказалось достаточно сложно. К тому же он требует, чтобы кеш уже был “нагрет” на этой же машине. PyOffline2 решает проблему переносимости: вы приносите архив на флешке — и он работает сразу, без лишних танцев с бубном.
Критично: архив PyOffline2 привязан к операционной системе (Windows/Linux). Сборка для Windows не запустится на Linux, и наоборот. Поэтому скачивать и формировать архив нужно на той ОС, где вы планируете работать.
Это как uv для разработки, а PyOffline2 — для «режима офлайн». Вместе они закрывают все сценарии.😎
UPD: Вышло обновление v0.2.0! 🚀
Спасибо всем за интерес и комментарии! Решил не ждать и сразу показать свежую фичу, которая родилась из обсуждений и личного опыта.
Что нового:
📂 Команда tree: Показывает дерево проекта с иконками прямо в терминале.
📋 Копирование в буфер: Флаг -cb собирает структуру и код в один клик, чтобы быстро отправить контекст в AI-чат или приложить к баг-репорту.
⚙️ Гибкая настройка: Через tree-cfg можно указать, какие папки и файлы пропускать.
Зацените пример в обновлённой статье. Как всегда, звёзды и пул-реквесты на GitHub очень приветствуются! 😊
PyOffline2: простой офлайн-менеджер для Python-пакетов без лишней головной боли