web-dev-qa-db-fra.com

Récupère tous les modules / packages utilisés par un projet python

J'ai une application graphique python GUI. Et maintenant, je dois savoir à quoi toutes les bibliothèques sont liées. Pour que je puisse vérifier la compatibilité des licences de toutes les bibliothèques.

J'ai essayé d'utiliser strace, mais strace semble signaler tous les packages même s'ils ne sont pas utilisés par l'application.

Et, j'ai essayé python ModuleFinder mais il retourne juste les modules qui sont à l'intérieur de python2.7 et non les paquets de niveau système qui sont liés.

Existe-t-il un moyen d'obtenir toutes les bibliothèques liées depuis mon application?

23
user2109788

Vous pouvez essayer la bibliothèque https://github.com/bndr/pipreqs trouvée en suivant le guide https://www.fullstackpython.com/application-dependencies.html


La bibliothèque pipreqs est installable par pip et génère automatiquement le fichier requirements.txt. Il contient toutes les bibliothèques d'importation avec les versions que vous utilisez dans virtualenv ou dans python correctement installé.

Tapez simplement:

pip install pipreqs
pipreqs /home/project/location

Il imprimera:

INFO: Successfully saved requirements file in /home/project/location/requirements.txt

De plus, il est compatible avec la commande pip install -r : si vous devez créer un venv de votre projet, ou mettre à jour votre python avec des bibliothèques compatibles, il vous suffit de taper:

pip install -r requirements.txt

J'ai eu le même problème et cette bibliothèque l'a résolu pour moi. Je ne sais pas si cela fonctionne pour plusieurs couches de dépendances, c'est-à-dire si vous avez un niveau imbriqué de bibliothèques dépendantes.

- Modifier - Mettre à jour:

Si vous recherchez un gestionnaire de versions plus sophistiqué, veuillez également considérer pyvenv https://github.com/pyenv/pyenv . Il mélange virtualenv et pipreqs dans le même outil, avec quelques améliorations par rapport à la spécification de version de pipreqs.

49
SeF

Installez le jaune avec:

pip install yolk

Appelez ce qui suit pour obtenir la liste des œufs dans votre environnement:

yolk -l

Alternativement, vous pouvez utiliser snakefood pour représenter graphiquement vos dépendances, comme indiqué dans cette question .

Vous pouvez essayer d'aller dans le dossier site-packages où sont stockés les œufs décompressés, et d'exécuter ceci:

ls -l */LICENSE*

Cela vous donnera une liste des fichiers de licence pour chaque projet (s'ils sont stockés à la racine de l'oeuf, ce qu'ils sont généralement).

0
datashaman