pip freeze senza dipendenze dai pacchetti installati
-
29-10-2019 - |
Domanda
Quando eseguo pip freeze
ottengo i pacchetti che ho installato esplicitamente più quei pacchetti che sono dipendenze di quei pacchetti.
Ad esempio:
$ pip install fabric
...
$ pip freeze
Fabric==1.0.1
paramiko==1.7.6
pycrypto==2.3
Va bene ma poi passo ad installare questo requirements.txt su un altro ambiente con pip install
otterrei lo stesso risultato con le ultime 2 righe rimosse.
Quindi la mia domanda è: come posso creare il file requirements.txt più semplificato in cui non vengono mostrate tutte le dipendenze calcolabili?
Soluzione
Ora c'è (disclaimer: l'ho fatto).
Tutto ciò di cui hai bisogno è installare pip-chill
da PyPI ed eseguire pip-chill
dal tuo ambiente Python.
Se ti senti avventuroso e non vuoi bloccare le versioni (o vuoi usare pip-compile), puoi usare pip-chill --no-version
e ti darà i requisiti minimi per il tuo ambiente attuale.
Altri suggerimenti
Non c'è modo di creare "il file requirements.txt più semplificato" con pip e non so se ne avresti bisogno in questo caso.
È utile avere tutti i pacchetti nel file requirements.txt, perché sei sicuro di quali versioni delle dipendenze funzionano con il tuo ambiente.
Pensa all'aggiornamento di paramiko e alla rottura delle compatibilità all'indietro: avresti problemi.