2015-05-31 13 views
5

Vorrei trovare un modo per ottenere la data e l'ora del calendario in formato ora: minuto: secondi per i pacchetti installati tramite pip.Ottieni data e ora di installazione per i pacchetti installati tramite pip

Vorrei poter vedere qualcosa in uscita come: Mese/giorno/anno - Ore: minuti: secondi per ogni pacchetto.

Grazie!

+1

Perché è importante quando sono stati installati? – jonrsharpe

+0

@Ajay, penso che intenda quelli che ha usato 'pip install ' per. – IronManMark20

risposta

6

E 'questo quello che stai cercando -

import pip 
import os 
import time 

In [139]: for package in pip.get_installed_distributions(): 
    .....:   print "%s: %s" % (package, time.ctime(os.path.getctime(package.location))) 
    .....:  
pyudev 0.17.dev20150317: Tue Mar 17 12:02:58 2015 
python-magic 0.4.6: Fri Mar 20 14:07:59 2015 
runipy 0.1.0: Fri Oct 31 01:49:34 2014 

Fonte del codice - https://stackoverflow.com/a/24736563/170005

Si può fare import pip troppo, che è piuttosto interessante. Non lo sapevo

+0

Questo è davvero bello. Grazie per la risposta. Il guaio è che ho aggiornato tutti i miei pacchetti installati nello stesso momento in Lun 27 Apr 15:22:11 2015. "ctime" sta selezionando solo questo al momento. Vado a dare un'occhiata ad altre opzioni os.path per vedere se c'è un'altra opzione temporale. – wgwz

+0

Sembra che le uniche altre opzioni siano 'os.path.getatime' o' getmtime' che restituiscono l'ora dell'ultimo accesso e l'ultima ora di modifica. Che non restituiscono la data di installazione. Ma ancora dannatamente vicino! – wgwz

+0

@wgwz Sfortunatamente il problema è che package.location fornisce la directory in cui è installato il pacchetto piuttosto che il percorso del pacchetto stesso. Ecco una risposta che funziona meglio per me: https://stackoverflow.com/a/44436961/2525237 – sunyata

0

Si possono elencare tutte le posizioni che detiene i pacchetti e poi basta elencare tutti i file in queste directory (insieme con l'ora di creazione):

import pip 
import os 
import time 

pkg_location_dir_strset = set() 

for pip_pkg in pip.get_installed_distributions(): 
    if pip_pkg.location not in pkg_location_dir_strset: 
     pkg_location_dir_strset.add(pip_pkg.location) 

for pkg_location_dir_str in pkg_location_dir_strset: 
    print("") 
    print("Directory: " + pkg_location_dir_str) 
    for file_or_dir in os.listdir(pkg_location_dir_str): 
     # print("file_or_dir = " + file_or_dir) 
     file_or_dir_path = os.path.join(pkg_location_dir_str, file_or_dir) 
     print(
      os.path.basename(file_or_dir).ljust(50) 
      + " " + time.ctime(os.path.getctime(file_or_dir_path)) 
     ) 

anche check out this answer for an alternative solution che si può preferire

Speranza questo aiuta!

Problemi correlati