Wiem, jak wyświetlić zainstalowane pakiety Pythona za pomocą pip, wystarczy użyć pip freeze
. Ale czy istnieje sposób, aby zobaczyć datę i godzinę, kiedy pakiet jest instalowany lub aktualizowany za pomocą pip?Zobacz, kiedy pakiety zostały zainstalowane/zaktualizowane za pomocą pip
Odpowiedz
pip freeze
zawiera wszystkie zainstalowane pakiety. Zakładając, że wiesz folder:
time.ctime(os.path.getctime(file))
powinno dać czas utworzenia pliku, czyli datę, kiedy pakiet został zainstalowany lub uaktualniony.
Nie znam wszystkich opcji pip
, ale dla jednego modułu można uzyskać listę jego plików
, a następnie można sprawdzić jego daty za pomocą Pythona lub basha.
Na przykład listy plików w module requests
pip show --files requests
wynik:
Name: requests
Version: 2.2.1
Location: /usr/local/lib/python2.7/dist-packages
Requires:
Files:
../requests/hooks.py
../requests/status_codes.py
../requests/auth.py
../requests/models.py
etc.
BTW: można użyć --help
, aby zobaczyć więcej opcji dla niektórych funkcji
pip --help
pip list --help
pip show --help
etc.
Jeśli nie jest to konieczne różnią się między zaktualizowanymi i zainstalowanymi, można użyć czasu zmiany pliku pakietu. Tak:
import pip, os, time
for package in pip.get_installed_distributions():
print "%s: %s" % (package, time.ctime(os.path.getctime(package.location)))
Btw: Zamiast pip freeze
można użyć pip list
który jest w stanie dostarczyć trochę więcej informacji, jak przestarzałych pakietów poprzez pip list -o
.
Można użyć opcji --log
:
--log <path> Path to a verbose appending log. This log is inactive by default.
np
$ pip install --log ~/.pip/pip.append.log gunicorn
Albo można ustawić go w pip.conf
być włączona domyślnie:
[global]
log = <path>
Wtedy wszystko operacje pip
będą rejestrowane w trybie verbosely do s Plik pecified wraz z separatorem dziennika i datownika, np
$ pip install --log ~/.pip/pip.append.log gunicorn
$ pip install --log ~/.pip/pip.append.log --upgrade gunicorn
rejestruje następujące do ~/.pip/pip.append.log:
------------------------------------------------------------
/usr/bin/pip run on Mon Jul 14 14:35:36 2014
Downloading/unpacking gunicorn
...
Successfully installed gunicorn
Cleaning up...
------------------------------------------------------------
/usr/bin/pip run on Mon Jul 14 14:35:57 2014
Getting page https://pypi.python.org/simple/gunicorn/
URLs to search for versions for gunicorn in /usr/lib/python2.7/site-packages:
* https://pypi.python.org/simple/gunicorn/
...
Requirement already up-to-date: gunicorn in /usr/lib/python2.7/site-packages
Cleaning up...
Można analizować, co trzeba z tym log. Chociaż nie jest to najmilszy, to jest to standardowe narzędzie o nazwie pip
.
Niestety, pakowanie w pythona sprawia, że jest to nieco skomplikowane, ponieważ nie ma spójnego miejsca z listą plików pakietu lub katalogów modułów.
Oto najlepsze jakie wymyślić:
#!/usr/bin/env python
# Prints when python packages were installed
from __future__ import print_function
from datetime import datetime
import os
import pip
if __name__ == "__main__":
packages = []
for package in pip.get_installed_distributions():
package_name_version = str(package)
try:
module_dir = next(package._get_metadata('top_level.txt'))
package_location = os.path.join(package.location, module_dir)
os.stat(package_location)
except (StopIteration, OSError):
try:
package_location = os.path.join(package.location, package.key)
os.stat(package_location)
except:
package_location = package.location
modification_time = os.path.getctime(package_location)
modification_time = datetime.fromtimestamp(modification_time)
packages.append([
modification_time,
package_name_version
])
for modification_time, package_name_version in sorted(packages):
print("{0} - {1}".format(modification_time,
package_name_version))
Wydaje się, że daje to najdokładniejsze wyniki. Również +1 do sortowania i ładnego formatowania. – bluenote10
Jest to zdecydowanie najbardziej przydatna odpowiedź do przeglądania, gdy pakiety zostały zainstalowane/ostatnio zaktualizowane. Dzięki! – Jeff
- 1. Gdzie pip instaluje swoje pakiety?
- 2. Jak buforować pobrane pakiety PIP
- 3. Zainstaluj pyyaml za pomocą pip/Dodaj PyYaml jako zależność pip
- 4. Jak mogę uaktualnić określone pakiety za pomocą pip i pliku wymagań?
- 5. Zaktualizuj wszystkie pakiety pip, które nie pochodzą od Conda.
- 6. Zobacz PDF bez pobierania za pomocą dompdf
- 7. Jak zainstalować Django 1.5 za pomocą pip?
- 8. upgade wersja python za pomocą pip
- 9. Jak odinstalować repozytorium git za pomocą pip?
- 10. Instalowanie uwsgi z wtyczkami za pomocą "pip"
- 11. Czy istnieje sposób na odinstalowanie wielu pakietów za pomocą pip?
- 12. Pakiety paczek eksportowych
- 13. Jak mogę zainstalować pakiety hostowane w prywatnym PyPI za pomocą setup.py?
- 14. Mobile Web: Wykrywanie kiedy zdjęcia zostały wyłączone
- 15. Pakiety modułów, które nie zostały znalezione podczas kompilacji w IntelliJ
- 16. Jak pip pakiety instalacyjne zgodnie z wymaganiami.txt z lokalnego katalogu?
- 17. Jak odinstalować wszystkie pakiety z homebrew, dystrybucji, macports, pip?
- 18. kiedy hostować za pomocą CDN, a kiedy nie?
- 19. Jak wygenerować pakiety sieciowe za pomocą C/C++
- 20. Zainstalować pakiety Haskell za pomocą cabal bez połączenia z Internetem
- 21. Sprawdź, czy wszystkie pola wejściowe zostały wypełnione za pomocą jQuery
- 22. Jak mogę zainstalować z podkatalogu git za pomocą pip?
- 23. Czy odinstalowanie pakietu za pomocą "pip" powoduje również usunięcie zależnych pakietów?
- 24. Zobacz wyniki logcat za pośrednictwem Wi-Fi?
- 25. Wykryj, kiedy Gmail zakończył ładowanie za pomocą jQuery i GreaseMonkey
- 26. Dlaczego nie działa "pip show" lub "pip list"?
- 27. Jak pobrać wieloplatformowe koła za pośrednictwem pip?
- 28. Wiele instalacji python i pip, koleś, gdzie są moje pakiety witryny?
- 29. python pip cicha instalacja
- 30. Instalacja pip zawiesza się
'import pip' jest bardzo interesująca. – furas
Jedną z poważnych wad do patrzenia na 'package.location' jest to, że jest to tylko katalog, który zawiera katalog modułów (np. /usr/local/lib/python2.7/dist-packages), więc nawet jeśli zainstalujesz jedną paczkę , pokaże wszystkie uaktualnienia jako zaktualizowane. – jof