2017-01-23 12 views
11

Czy istnieje sposób, aby uzyskać listę zależności dla danego pakietu python bez instalowania go najpierw?Jak wyświetlić listę zależności dla biblioteki Pythona bez instalowania?

Mogę obecnie uzyskać listę wymagań, ale wymaga to zainstalowania pakietów. Na przykład, można użyć pip pokazać podstawowe informacje o wymagania, ale nie zawiera informacji o wersji:

$ pip show pytest 
Name: pytest 
Version: 3.0.6 
... 
Requires: colorama, setuptools, py 

Próbowałem biblioteka nazywa pipdeptree że zawiera dużo lepsze wyjście od wymagań, ale również wymaga instalacji pakietów

$ pipdeptree -p pytest 
pytest==3.0.6 
- colorama [required: Any, installed: 0.3.7] 
- py [required: >=1.4.29, installed: 1.4.32] 
- setuptools [required: Any, installed: 34.0.0] 
    - appdirs [required: >=1.4.0, installed: 1.4.0] 
... 

Najlepiej byłoby uzyskać poziom szczegółowości, który zapewnia pipdeptree. Pomocne może być również utworzenie pliku requirements.txt z pytona wheel lub z pypi z pip.

EDIT:

Szukałem na similar pytania. Są albo nieaktualne, wymagają instalacji, albo nie zawierają pojedynczych zależności dla danego pakietu, a jedynie listę końcowych pobranych pakietów po rozwiązaniu wymagań zależności. Na przykład, nie obchodzi mnie to, że pobrany plik package-2.3.4, wolałbym, aby wymagane było package>=2.1.

+0

Nie wiem, dlaczego to dostałeś -1! W każdym razie, załóżmy, że używasz pip, aby zainstalować matplotlib. Prawdopodobnie pip sprawdza, czy posiada wersje bibliotek, których potrzebuje do poprawnego działania programu matplotlib. Czy byłby więc bardziej prawdopodobne, że dostaniesz odpowiedź, gdybyś zapytał, w jaki sposób pip wie, jakie wersje wymagań należy zainstalować dla danej biblioteki? –

+0

@BillBell Odpowiedź na to pytanie dałaby mi część rozwiązania. Określanie wymagań jest obecnie nieco przerywane w pythonie. W przypadku kół mogę przejrzeć plik 'METADATA' i przeanalizować sekcje' Wymaga-Dist'. Dla starszych dystrybucji źródłowych 'tar.gz' jest to znacznie mniej jasne. Musiałbym albo przeanalizować pliki 'requirements.txt', albo spróbuj i parsować pliki' setup.py'. Ale 'pip' i inne biblioteki już to robią, więc byłoby miło, gdybym mógł ponownie użyć jakiejkolwiek logiki, której używają do uzyskania informacji. –

+1

Możliwy duplikat [Czy istnieje sposób na wyliczenie zależności/wymagań dotyczących pip?] (Http://stackoverflow.com/questions/11147667/is-there-a-way-to-list-pip-dependencies-requirements) –

Odpowiedz

0

Jeśli nie przeszkadza instalowania Conda, może to załatwi za Ciebie:

$ conda info numpy=1.11.1 python=3.6.3 

Numery wersji pakietu lub Pythona są opcjonalne (wszystkie wersje zostaną opisane)

Powiązane problemy