В nodejs я могу npm install package --save-dev
сохранить установленный пакет в пакет.
Как мне добиться того же в менеджере пакетов Python pip
? Я хотел бы сохранить имя пакета и его версию, скажем, requirements.pip
сразу после установки пакета, используя что-то вроде pip install package --save-dev requirements.pip
.
pip freeze > requirements.pip
npm install package --save-dev
совмещает установку и добавление в файл требований node_npm одновременно. Это более удобно. С помощьюpip freeze
я должен сделать две команды, чтобы сделать то же самое: 1)pip install package
2)pip freeze > requirements.pip
--save
варианте.Ответы:
Нет эквивалента с
pip
.Лучший способ это
pip install package && pip freeze > requirements.txt
Вы можете увидеть все доступные опции на их странице документации .
Если это действительно беспокоит вас, не составит труда написать собственный скрипт bash (
pips
), который принимает-s
аргумент иrequirements.txt
автоматически замораживает ваш файл.Редактировать 1
С момента написания этой статьи не было никаких изменений в предоставлении автоматической
--save-dev
опции, аналогичной NPM, однако Кеннет Рейтц (авторrequests
и многие другие) выпустил дополнительную информацию о лучшем рабочем процессе пипса для лучшей обработкиpip
обновлений.Редактировать 2
В соответствии с приведенной выше статьей «лучший рабочий процесс в пипсах» рекомендуется использовать ее
pipenv
для управления требованиями и виртуальными средами. Пользуясь этим много раз в последнее время, я хотел бы резюмировать, насколько простой переход:Установить
pipenv
(на Mac)pipenv
создает и управляет своими собственными виртуальными средами, поэтому в проекте с существующимиrequirements.txt
установкой всех требований (я использую Python3.7, но вы можете удалить,--three
если нет) так же просто, как:Активировать virtualenv для запуска команд также легко
Требования к установке автоматически обновят
Pipfile
иPipfile.lock
Также возможно обновление устаревших пакетов
Я настоятельно рекомендую проверить его , особенно если исходит от
npm
фона , как это имеет подобное чувство кpackage.json
иpackage-lock.json
источник
pipenv
позволяет вам указатьdev-packages
в вашемPipfile
и / или использовать--dev
(или-d
) из командной строки. напримерpipenv install --dev nose2
Эта простая линия является отправной точкой. Вы можете легко собрать команду bash, чтобы повторно использовать ПАКЕТ в строке.
Спасибо @devsnd за простой пример функции bash:
Чтобы использовать это, просто запустите:
источник
P=Flask pip install $P && pip freeze | grep $P >> requirements.txt
Я создал питон пакет , который оборачивается вокруг реального
pip
называется pipm . Всеpip
команды будут работать как есть, плюс они будут отражены в файле требований. В отличие отpip-save
(похожего инструмента, который я нашел и не смог использовать), он может обрабатывать множество файлов и сред (test, dev, production и т. Д.). Он также имеет команду для обновления всех / любых ваших зависимостей.монтаж
pipm install pkg-name
установка как зависимость развития
pipm install pkg-name --dev
установка как тестирование зависимости
pipm install pkg-name --test
удаление
pipm uninstall pkg-name
обновить все ваши зависимости
pipm update
установить все ваши зависимости из файла требований
pipm install
в том числе зависимости развития
pipm install --dev
источник
Обновление: очевидно, что pipenv официально не одобрен сопровождающими Python , а ранее связанная страница принадлежит другой организации. У инструмента есть свои плюсы и минусы, но приведенное ниже решение все же дает результат, к которому стремится OP.
pipenv - это инструмент управления зависимостями, который упаковывает
pip
и, помимо прочего, предоставляет то, что вы просите:https://pipenv.kennethreitz.org/en/latest/#example-pipenv-workflow
А
Pipfile
является прямым эквивалентомpackage.json
, аPipfile.lock
соответствуетpackage-lock.json
.источник
Я быстро взломал,
pip
чтобы добавить--save
опцию для установки / удаления команд.Пожалуйста, посмотрите на мой блог для получения дополнительной информации об этом взломе: http://blog.abhiomkar.in/2015/11/12/pip-save-npm-like-behaviour-to-pip/
Установка (GitHub): https://github.com/abhiomkar/pip-save
Надеюсь это поможет.
источник
Вы можете вручную сохранить его в Makefile (или в текстовом файле, а затем импортировать в ваш Makefile):
а потом просто беги
make install
источник
Я использую эту маленькую командную строку, чтобы установить пакет и сохранить его версию в
requirements.txt
:pkg=package && pip install $pkg && echo $(pip freeze | grep -i $pkg) >> requirements.txt
источник
Как насчет сделать функцию оболочки, чтобы сделать это? Добавьте код ниже к вашему
~/.profile
или~/.bashrc
затем запустите
source ~/.profile
илиsource ~/.bashrc
импортируйте его в свой текущий терминалесли вы хотите установить && сохранить пакет, просто запустите, например
pips requests
. после установки пакета его версия будет сохраненаrequirements.txt
в вашем текущем каталоге.источник