2015-05-31 13 views
5

Chciałbym znaleźć sposób na uzyskanie daty i godziny w formacie godziny: minuty: sekundy dla moich pakietów zainstalowanych za pośrednictwem pip.Uzyskaj datę i czas instalacji pakietów zainstalowanych za pośrednictwem pip

Chciałbym móc zobaczyć coś w wynikach takich jak: Miesiąc/dzień/rok - godzina: minuta: Sekundy dla każdego pakietu.

Dzięki!

+1

Dlaczego to ma znaczenie, kiedy zostały zainstalowane? – jonrsharpe

+0

@Ajay, myślę, że on oznacza tych, którzy użyli 'pip install ' for. – IronManMark20

Odpowiedz

6

Czy tego szukasz -

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 

Źródło kodu - https://stackoverflow.com/a/24736563/170005

Można zrobić import pip też, co jest dość interesująca. Nie wiedziałem tego.

+0

To jest naprawdę fajne. Dziękuję za odpowiedź. Problem polega na tym, że zaktualizowałem wszystkie zainstalowane pakiety w tym samym czasie na Mon Apr 27 15:22:11 2015. "ctime" właśnie w tej chwili podnosi tylko to. Zamierzam sprawdzić więcej opcji os.path, aby sprawdzić, czy jest inna opcja czasu. – wgwz

+0

Wygląda na to, że jedynymi innymi opcjami są 'os.path.getatime' lub' getmtime', które zwracają ostatni czas dostępu i czas ostatniej modyfikacji. Które nie zwracają daty instalacji. Ale nadal cholernie blisko! – wgwz

+0

@wgwz Niestety problem polega na tym, że package.location podaje katalog, w którym jest zainstalowany pakiet, a nie ścieżkę do samego pakietu. Oto odpowiedź, która działa lepiej dla mnie: https://stackoverflow.com/a/44436961/2525237 – sunyata

0

Można wymienić wszystkie lokalizacje, które przechowuje pakiety, a następnie po prostu listę wszystkich plików w tych katalogach (wraz z czasem tworzenia):

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

także check out this answer for an alternative solution który może wolisz

Nadzieja to pomaga!

Powiązane problemy