2015-05-31 4 views
5

Ich möchte einen Weg finden, um das Datum und die Uhrzeit im Format Stunde: Minute: Sekunden für meine über pip installierten Pakete zu erhalten.Erhalte Datum und Uhrzeit der Installation für Pakete installiert über Pip

Ich möchte in der Ausgabe etwas wie sehen können: Monat/Tag/Jahr - Stunde: Minute: Sekunden für jedes Paket.

Danke!

+1

Warum ist es wichtig, wann sie installiert wurden? – jonrsharpe

+0

@Ajay, ich denke, er meint diejenigen, die er 'pip install ' für verwendet. – IronManMark20

Antwort

6

Ist das, was Sie suchen -

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 

Quelle des Codes - https://stackoverflow.com/a/24736563/170005

Sie import pip auch tun, was ziemlich interessant ist. Ich wusste das nicht.

+0

Das ist wirklich cool. Danke für die Antwort. Das Problem ist, dass ich alle meine installierten Pakete zur gleichen Zeit am Montag, den 27. April 15.22.11 Uhr aktualisiert habe. "Ctime" hebt nur das im Moment auf. Ich werde einige weitere os.path-Optionen prüfen, um zu sehen, ob es eine andere Zeitoption gibt. – wgwz

+0

Es scheint, als ob die einzigen anderen Optionen 'os.path.getatime' oder' getmtime' sind, die die letzte Zugriffszeit und die letzte Änderungszeit zurückgeben. Die geben das Installationsdatum nicht zurück. Aber immer noch verdammt nah! – wgwz

+0

@wgwz Leider ist das Problem, dass package.location das Verzeichnis angibt, in dem das Paket installiert ist, und nicht den Pfad zum Paket selbst. Hier ist eine Antwort, die für mich besser funktioniert: https://stackoverflow.com/a/44436961/2525237 – sunyata

0

Sie können alle Standorte aufgelistet, die die Pakete hält und dann Liste nur alle Dateien in diesen Verzeichnissen (zusammen mit der Erstellungszeit):

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)) 
     ) 

Auch check out this answer for an alternative solution, die Sie

Hoffnung bevorzugen das hilft!