2015-07-28 8 views
65

A volte scarico il codice sorgente Python da github e non so come installare tutte le dipendenze. Se non c'è il file requirements.txt devo crearlo a mano. La domanda è: Data la directory del codice sorgente Python è possibile creare automaticamente requirements.txt dalla sezione di importazione?Crea automaticamente requirements.txt

+0

Puoi farlo eseguendo 'pip freeze> requirements.txt' salverà tutte le tue librerie python con la versione corrente nel file' requirements.txt' – Shaikhul

+2

@Shaikhul ma ciò non aiuta nel caso in cui non lo fai avere le dipendenze installate perché hai appena scaricato il pacchetto da GitHub ... – jonrsharpe

+1

Nota: a) 'pip freeze' scaricherà le versioni correnti di' all' i moduli installati su quel sistema indipendentemente dal loro utilizzo nel progetto corrente . b) pip elencherà solo i moduli che sono stati installati tramite pip – akskap

risposta

72

Se si utilizza l'ambiente virtuale, pip freeze > requirements.txt bene. In caso contrario, pigar sarà una buona scelta per voi.

A proposito, non sono sicuro che funzionerà con 2.6.

UPDATE:

Pipenv è raccomandato per le moderne applicazioni Python.

+0

Grazie per aver menzionato il maialino –

+0

Per qualsiasi errore, consiglio di provare 'pip3 freeze> requirements.txt' prima di fare una domanda. – baranskistad

+0

Eseguo 'pip3 freeze> requirements.txt' e sono sorpreso di non trovare alcuni pacchetti che sto usando come' argparse' e ​​'configparser'. È perché fanno parte del core di Python? Credo che una risposta migliore sia usare 'pipreqs' di seguito perché elencherà solo i requisiti che il progetto sta usando. –

105

È possibile utilizzare il seguente codice per generare un file requirements.txt:

pip install pipreqs 

pipreqs /path/to/project 

ulteriori informazioni relative al pipreqs può essere trovato here.

A volte ci si imbatte in pip freeze, ma questo salva tutti i pacchetti nell'ambiente inclusi quelli che non si utilizzano nel progetto corrente.

+0

grazie. Ho 'ubuntu @ laptop ~/Desktop/MemNN-hyperopt $ pipreqs ./ /Library/Python/2.6/site-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: Un vero SSLContext l'oggetto non è disponibile. Ciò impedisce a urllib3 di configurare SSL in maniera appropriata e potrebbe causare il fallimento di alcune connessioni SSL. Per ulteriori informazioni, consultare https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning' è ok? –

+0

A dire il vero non l'ho mai visto prima. Sembra causato perché la tua versione python non può essere utilizzata in modo affidabile per le connessioni SSL. Ci sono alcune soluzioni alternative inserite in https://github.com/pypa/pip/issues/2681, ho anche letto che l'aggiornamento della tua versione python potrebbe aiutare. Forse qualche esperto in materia può dare consigli migliori? – DJanssens

+1

@IgorBarinov è un avviso e non creerà un problema per eseguire 'pipreqs', l'ho installato su python 2.6 e ho ricevuto lo stesso avviso ma crea un file' requirements.txt', grazie @DJanssens – Shaikhul

Problemi correlati