Dans nodejs, je peux faire npm install package --save-dev
pour enregistrer le package installé dans le package.
Comment puis-je réaliser la même chose dans le gestionnaire de packages Python pip
? Je voudrais enregistrer le nom du package et sa version dans, disons, requirements.pip
juste après l'installation du package en utilisant quelque chose comme pip install package --save-dev requirements.pip
.
pip freeze > requirements.pip
npm install package --save-dev
combine à la fois l'installation et l'ajout au fichier d'exigences node_npm. C'est plus pratique. Avecpip freeze
je dois faire deux commandes pour faire la même chose: 1)pip install package
2)pip freeze > requirements.pip
--save
option.Réponses:
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-s
argument et se figerequirements.txt
automatiquement dans votre fichier.Modifier 1
Depuis l'écriture de ce document, il n'y a eu aucun changement dans la fourniture d'une
--save-dev
option automatique similaire à NPM, mais Kenneth Reitz (auteur derequests
et bien d'autres) a publié plus d'informations sur un meilleur flux de travail pip pour mieux gérer lespip
mises à jour.Modifier 2
Lié à l'article «Better pip workflow» ci-dessus, il est désormais recommandé de l'utiliser
pipenv
pour gérer les exigences et les environnements virtuels. Ayant beaucoup utilisé cela récemment, je voudrais résumer la simplicité de la transition:Installer
pipenv
(sur Mac)pipenv
crée et gère ses propres environnements virtuels donc dans un projet avec un existantrequirements.txt
, l'installation de toutes les exigences (j'utilise Python3.7 mais vous pouvez supprimer le--three
si vous ne le faites pas) est aussi simple que:L'activation de virtualenv pour exécuter des commandes est également facile
Exigences de l' installation mettra à jour automatiquement
Pipfile
etPipfile.lock
Il est également possible de mettre à jour des packages obsolètes
Je recommande fortement de le vérifier surtout si vous venez d'un
npm
arrière - plan car il a une sensation similaire àpackage.json
etpackage-lock.json
la source
pipenv
vous permet de spécifier undev-packages
dans votrePipfile
et / ou utiliser--dev
(ou-d
) à partir de la ligne de commande. par exemplepipenv install --dev nose2
Cette simple ligne est un point de départ. Vous pouvez facilement créer une commande bash pour réutiliser le PACKAGE dans la ligne.
Merci à @devsnd pour l'exemple de fonction bash simple:
Pour l'utiliser, lancez simplement:
la source
P=Flask pip install $P && pip freeze | grep $P >> requirements.txt
J'ai créé un package python qui entoure le pipm
pip
appelé . Toutes les commandes fonctionneront telles quelles, et elles seront reflétées dans le fichier des exigences. Contrairement à (outil similaire que j'ai trouvé et que je n'ai pas pu utiliser), il peut gérer de nombreux fichiers et environnements (test, développement, production, etc.). Il a également la commande de mettre à niveau toutes / toutes vos dépendances.pip
pip-save
installation
pipm install pkg-name
installation en tant que dépendance de développement
pipm install pkg-name --dev
installation comme test de dépendance
pipm install pkg-name --test
suppression
pipm uninstall pkg-name
mettre à jour toutes vos dépendances
pipm update
installez toutes vos dépendances à partir du fichier d'exigences
pipm install
y compris les dépendances de développement
pipm install --dev
la source
Mise à jour: apparemment, pipenv n'est pas officiellement approuvé par les responsables de Python et la page précédemment liée appartient à une autre organisation. L'outil a ses avantages et ses inconvénients, mais la solution ci-dessous atteint toujours le résultat recherché par le PO.
pipenv est un outil de gestion des dépendances qui encapsule
pip
et, entre autres, fournit ce que vous demandez:https://pipenv.kennethreitz.org/en/latest/#example-pipenv-workflow
A
Pipfile
est un équivalent direct depackage.json
, tandis quePipfile.lock
correspond àpackage-lock.json
.la source
J'ai fait un hack rapide
pip
pour ajouter une--save
option pour installer / désinstaller les commandes.Veuillez consulter 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.
la source
vous pouvez l' enregistrer manuellement dans un Makefile (ou un fichier texte puis importé dans votre Makefile):
puis exécutez
make install
la source
J'utilise cette petite ligne de commande pour installer un package et enregistrer sa version dans
requirements.txt
:pkg=package && pip install $pkg && echo $(pip freeze | grep -i $pkg) >> requirements.txt
la source
Que diriez-vous de faire une fonction shell pour ce faire? Ajoutez le code ci-dessous à votre
~/.profile
ou~/.bashrc
puis lancez
source ~/.profile
ousource ~/.bashrc
pour l'importer sur votre terminal actuellorsque vous souhaitez installer et enregistrer un package, lancez simplement, par exemple
pips requests
. une fois le package installé, sa version sera enregistrée dansrequirements.txt
votre répertoire actuel.la source