2015-09-04 13 views
9

Quando si esegue pip freeze > requirements.txt sembra che includa tutti i pacchetti installati. Questo appare come come comportamento documentato.Blocco dei tubi solo per i requisiti di progetto

Ho, tuttavia, fatto qualcosa di sbagliato in quanto ora include cose come Django in progetti che non hanno alcun rapporto con Django.

Come ottengo i requisiti per questo solo progetto? o in futuro come installo un pacchetto con pip da utilizzare per questo progetto. Penso di aver perso qualcosa su uno virtualenv.

+3

'pip' non ha modo di capire, che il progetto non hanno affari con, diciamo, Django. Pertanto, in generale, si desidera creare un ambiente virtuale isolato senza accesso ai pacchetti del sito di sistema ed eseguire pip con il flag '--isolated' per ignorare le informazioni in' PYTHONPATH'. E ovviamente non dovresti installare pacchetti in quell'ambiente diverso da quello richiesto dal tuo progetto – Alik

+0

@Alik Alright, questo è ciò di cui avevo paura. Guarderò in seguito alla creazione degli ambienti virtuali. Se vuoi inviarlo come risposta vera, lo accetto. – ToothlessRebel

risposta

2

utilizzare questo comando

pip freeze -r requirements.txt | grep -B100 "pip freeze" | grep -v "pip freeze" 

Quando ho eseguito pip freeze -r requirements.txt l'uscita è qualcosa di simile

APScheduler==3.2.0 
Eve==0.6.4 
Eve-Elastic==0.3.8 
## The following requirements were added by pip freeze: 
arrow==0.8.0 
Cerberus==0.9.2 

Ho una requisiti di file come questo

APScheduler 
Eve 
Eve-Elastic 

Quindi ho questa uscita e grep per rimuovere le dipendenze che non desidero.

Prima uscita questo in un file

pip freeze -q -r requirements.txt | grep -B100 "pip freeze" | grep -v "pip freeze" > requirements-froze.txt 

che emette solo le librerie con la versione

APScheduler==3.2.0 
Eve==0.6.4 
Eve-Elastic==0.3.8 

Quindi sostituire il file requisiti

mv requirements.txt requirements.txt 
+0

Dovrò esaminare questo, ma credo che tutti i requisiti siano stati aggiunti da 'pip freeze', questo significherebbe che la linea cercata sarebbe la prima. – ToothlessRebel

14

pipreqs può salvare il giorno per un progetto specifico. Basta

pip(3) install pipreqs 
#then 
pipreqs path/to/project 

See more from here

Problemi correlati