Qu’est-ce que l’équivalent de pip de npm install package –save-dev`?

Dans nodejs, je peux faire le npm install package --save-dev pour enregistrer le paquet installé dans le paquet.

Comment puis-je obtenir la même chose avec le gestionnaire de paquets Python? Je voudrais enregistrer le nom du paquet et sa version dans, par exemple, requirements.pip juste après avoir installé le paquet en utilisant quelque chose comme le pip install package --save-dev requirements.pip .

Il n’y a pas d’équivalent avec pip .

Le meilleur moyen est de pip install package && pip freeze > requirements.txt

Vous pouvez voir toutes les options disponibles sur leur page de documentation .

Si cela vous dérange vraiment, il ne serait pas trop difficile d’écrire un script bash personnalisé ( pips ) qui prend un argument -s et se fige automatiquement dans votre fichier requirements.txt .

Modifier 1

Depuis l’écriture de ceci, il n’y a pas eu de changement en fournissant une --save-dev auto – --save-dev similaire à NPM mais Kenneth Reitz (auteur de requests et bien d’autres) a publié quelques informations sur un meilleur

Cette simple ligne est un sharepoint départ. Vous pouvez facilement créer une commande bash pour réutiliser le PACKAGE dans la ligne.

 pip install PACKAGE && pip freeze | grep PACKAGE >> requirements.txt 

La page de gestion des dépendances d’applications de Python recommande maintenant pipenv comme outil de gestion des dépendances. Il enveloppe pip et, entre autres choses, fournit ce que vous demandez:

https://docs.pipenv.org/basics/#example-pipenv-workflow

$ pipenv install

Cela créera un Pipfile s’il n’en existe pas. S’il en existe un, il sera automatiquement modifié avec le nouveau package fourni.

Un Pipfile est un équivalent direct de package.json , tandis que Pipfile.lock correspond à package-lock.json .

J’ai fait un rapide hack sur pip pour append l’option --save pour installer / désinstaller les commandes.

S’il vous plaît jeter un oeil à mon blog pour plus d’informations sur ce hack: http://blog.abhiomkar.in/2015/11/12/pip-save-npm-like-behaviour-to-pip/

Installation (GitHub): https://github.com/abhiomkar/pip-save

J’espère que cela t’aides.

J’ai créé le package python qui entoure les classes de pip réelles appelées pipm. Toutes les commandes pip fonctionneront telles quelles, en plus elles seront enregistrées dans le fichier des exigences. Contrairement à pip-save il peut gérer de nombreux fichiers et environnements (test, dev, production, etc.). Il a également la commande de mettre à jour toutes vos dépendances.

installation

pipm install pkg-name

installation en dépendance au développement

pipm install pkg-name --dev

installation en tant que dépendance de test

pipm install pkg-name --test

suppression

pipm uninstall pkg-name

mettre à jour toutes vos dépendances

pipm update

installer toutes vos dépendances à partir du fichier d’exigences

pipm install

y compris les dépendances de développement

pipm install --dev

vous pouvez l’enregistrer manuellement dans un fichier Makefile (ou un fichier texte puis importé dans votre Makefile):

 PYTHON=.venv/bin/python # path to pyphon PIP=.venv/bin/pip # path to pip SOURCE_VENV=. .venv/bin/activate install: virtualenv .venv $(SOURCE_VENV) && $(PIP) install -e PACKAGE $(SOURCE_VENV) && $(PIP) install -r requirements.txt # other required packages 

puis lancez simplement make install

Que diriez-vous de faire une fonction shell pour ce faire? Ajouter le code ci-dessous à votre ~/.profile ou ~/.bashrc

 pips() { local pkg=$1 if [ -z "$1" ]; then echo "usage: pips " return 1 fi local _ins="pip install $pkg" eval $_ins pip freeze | grep $pkg -i >> requirements.txt } 

puis lancez source ~/.profile ou source ~/.bashrc pour l’importer dans votre terminal actuel

Lorsque vous souhaitez installer && enregistrer un package, exécutez simplement, par exemple, les pips requests . Une fois le paquet installé, sa version sera enregistrée dans requirements.txt dans votre répertoire actuel.

J’utilise cette petite ligne de commande pour installer un paquet et enregistrer sa version dans requirements.txt : pkg=package && pip install $pkg && echo $(pip freeze | grep -i $pkg) >> requirements.txt