Size: a a a

Сообщество Python Программистов

2021 March 03

e

ezhidze in Сообщество Python Программистов
Всем привет! Перехожу в Python с Node.js и всё нравится, кроме пакетного менеджера pip.
Что конкретно не нравится:
- зависимости не добавляются автоматически
- постоянно нужно следить, установились ли зависимости в виртуальное окружение или глобально, активировать виртуальное окружение.

Вопрос: есть ли альтернативы pip, которые бы при установке новых пакетов добавляли зависимости в файлик типа package.json, и потом, при разворачивании в другой среде, требовалось прописать одну команду и установить все зависимости для проекта?

В Node.js ты устанавливаешь пакет, он автоматически добавляется в package.json, тебе не надо ручками вести никакой requirements.txt (когда я узнал, что питонисты вручную добавляют зависимости, я сначала не поверил) или держать в голове все зависимости, и при деплое ты просто пишешь npm install и все пакеты устанавливаются :)

Это не наезд на питонистов, просто вопрос, есть ли пакетные менеджеры, сопоставимые по удобству?
источник

e

ezhidze in Сообщество Python Программистов
Видел conda, но вроде как не решает эту проблему.
источник

e

ezhidze in Сообщество Python Программистов
Ещё нагуглил poetry. Кто-нибудь использовал, подойдёт ли для компенсации вышеперечисленных неудобств?
источник

M

Maksim in Сообщество Python Программистов
pip умеет сохранять в файлик и потом одной командой все устанавливать
источник

e

ezhidze in Сообщество Python Программистов
Maksim
pip умеет сохранять в файлик и потом одной командой все устанавливать
pip freeze ?
источник

M

Maksim in Сообщество Python Программистов
ezhidze
pip freeze ?
Да, и pip install -r filename
источник

e

ezhidze in Сообщество Python Программистов
Maksim
Да, и pip install -r filename
Ага, спасибо, буду как вариант рассматривать
источник

M

Maksim in Сообщество Python Программистов
ezhidze
Всем привет! Перехожу в Python с Node.js и всё нравится, кроме пакетного менеджера pip.
Что конкретно не нравится:
- зависимости не добавляются автоматически
- постоянно нужно следить, установились ли зависимости в виртуальное окружение или глобально, активировать виртуальное окружение.

Вопрос: есть ли альтернативы pip, которые бы при установке новых пакетов добавляли зависимости в файлик типа package.json, и потом, при разворачивании в другой среде, требовалось прописать одну команду и установить все зависимости для проекта?

В Node.js ты устанавливаешь пакет, он автоматически добавляется в package.json, тебе не надо ручками вести никакой requirements.txt (когда я узнал, что питонисты вручную добавляют зависимости, я сначала не поверил) или держать в голове все зависимости, и при деплое ты просто пишешь npm install и все пакеты устанавливаются :)

Это не наезд на питонистов, просто вопрос, есть ли пакетные менеджеры, сопоставимые по удобству?
И вручную никто не добавляет 🌚
Как раз таки

pip freeze > requirements.txt
pip install -r requirements.txt
источник

e

ezhidze in Сообщество Python Программистов
класс, всё проще чем я думал )
источник

M

Maksim in Сообщество Python Программистов
damnever/pigar: A fantastic tool to generate requirements.txt for your Python project, and more than that. (IT IS NOT A PACKAGE MANAGEMENT TOOL)
https://github.com/damnever/pigar
источник

M

Maksim in Сообщество Python Программистов
Вот ещё чёт в гугле нашёл на скорую руку
источник

M

Maksim in Сообщество Python Программистов
Но мне кажется двух команд достаточно)

Единственное, это надо следить за окружением
источник

M

Maksim in Сообщество Python Программистов
Не забывать активировать или деактивировать. Но большинство редакторов подхватывают окружения и автоматом делают эти действия.
источник

AT

Alexander T in Сообщество Python Программистов
ezhidze
Всем привет! Перехожу в Python с Node.js и всё нравится, кроме пакетного менеджера pip.
Что конкретно не нравится:
- зависимости не добавляются автоматически
- постоянно нужно следить, установились ли зависимости в виртуальное окружение или глобально, активировать виртуальное окружение.

Вопрос: есть ли альтернативы pip, которые бы при установке новых пакетов добавляли зависимости в файлик типа package.json, и потом, при разворачивании в другой среде, требовалось прописать одну команду и установить все зависимости для проекта?

В Node.js ты устанавливаешь пакет, он автоматически добавляется в package.json, тебе не надо ручками вести никакой requirements.txt (когда я узнал, что питонисты вручную добавляют зависимости, я сначала не поверил) или держать в голове все зависимости, и при деплое ты просто пишешь npm install и все пакеты устанавливаются :)

Это не наезд на питонистов, просто вопрос, есть ли пакетные менеджеры, сопоставимые по удобству?
pipenv, как вариант
источник

e

ezhidze in Сообщество Python Программистов
Alexander T
pipenv, как вариант
Это другой пакетный менеджер ? Или утилита для виртуального окружения
источник

e

ezhidze in Сообщество Python Программистов
Maksim
Не забывать активировать или деактивировать. Но большинство редакторов подхватывают окружения и автоматом делают эти действия.
Благодарю
источник

K

KarmaBot in Сообщество Python Программистов
ezhidze
Благодарю
Вы увеличили карму Maksim до 204.43 (+7.07)
источник

AT

Alexander T in Сообщество Python Программистов
ezhidze
Это другой пакетный менеджер ? Или утилита для виртуального окружения
это оболочка для пипа и виртуального окружения
источник

А

Айван in Сообщество Python Программистов
Maksim
И вручную никто не добавляет 🌚
Как раз таки

pip freeze > requirements.txt
pip install -r requirements.txt
И все зависимости в один requirements? Как-раз так никто не делает (если не нужен "слепок" венва.)
источник

А

Айван in Сообщество Python Программистов
ezhidze
Всем привет! Перехожу в Python с Node.js и всё нравится, кроме пакетного менеджера pip.
Что конкретно не нравится:
- зависимости не добавляются автоматически
- постоянно нужно следить, установились ли зависимости в виртуальное окружение или глобально, активировать виртуальное окружение.

Вопрос: есть ли альтернативы pip, которые бы при установке новых пакетов добавляли зависимости в файлик типа package.json, и потом, при разворачивании в другой среде, требовалось прописать одну команду и установить все зависимости для проекта?

В Node.js ты устанавливаешь пакет, он автоматически добавляется в package.json, тебе не надо ручками вести никакой requirements.txt (когда я узнал, что питонисты вручную добавляют зависимости, я сначала не поверил) или держать в голове все зависимости, и при деплое ты просто пишешь npm install и все пакеты устанавливаются :)

Это не наезд на питонистов, просто вопрос, есть ли пакетные менеджеры, сопоставимые по удобству?
Есть pipenv и poetry (вроде одно и тоже делают), но у них зачем-то свои форматы, .lock файлов, вместо генерации requirements (что ИМХО, было бы логичнее)
источник