2015-04-09 13 views
24

Do opracowania skryptu, który uruchamia pip install, byłoby przydatne mieć funkcję --dry-run.Jak wykonać pip "na sucho"?

Natknąłem się na opcję --no-install. Ale ten jest przestarzały i na odwołania odwołania this. Istnieją wskazówki, aby rozpakować tylko pakiet, ale nie mogę znaleźć opcji unpack w dokumentacji pip.

+0

spróbuj zainstalować koło. Jest to narzędzie do rozpakowywania. Użyj "koła instalacji pip". –

Odpowiedz

7

Wygląda na to, że masz rację, został wycofany (ref).

Jeśli przez próbne uruchomienie masz na myśli testowanie go przed faktycznym zainstalowaniem pakietu w określonym miejscu, prawdopodobnie przed instalacją systemową, możesz po prostu uruchomić go w środowisku wirtualnym, a następnie po prostu odrzucić środowisko.

virtualenv /tmp/venv; /tmp/venv/bin/pip install flask; rm -rf /tmp/venv 

Nie tak lapidarny jak użycie argumentu dry-run do pip, ale wykonuje to zadanie. Także jeśli chcesz wykonać serię pakietów instalacji, pomiń usunięcie na końcu.

W skrypcie można destylować go do procedury:

#!/bin/bash 

TMP_DIR='/tmp/venv' 

function dry_run(){ 
    if [ ! -d "$TMP_DIR" ]; then 
      virtualenv /tmp/venv 
    fi 
    /tmp/venv/bin/pip install $1 
} 

dry_run flask 
dry_run uwsgi 
rm -rf $TMP_DIR 

Jeśli chcesz zrobić na sucho, który sprawdza, że ​​nowa instalacja (e) grać dobrze z systemem szeroko rozmieszczone, a następnie użyć systemu virtualenv za opcja -site-packages.

virtualenv --system-site-packages /tmp/venv; /tmp/venv/bin/pip install flask; rm -rf /tmp/venv 
6

Tak - pip powinien mieć dry-run opcję, aby wskazać, co stałoby się w skomplikowanej sytuacji. Niebezpiecznie jest uruchamiać pakiety obniżające poziom pip install bez pytania. Musimy w jakiś sposób zapytać, co by się stało, gdybyśmy uruchomili pip install -r requirements.txt bez pracochłonnego przeszukiwania przez wszystkie wymagania i porównania ich z aktualnie zainstalowanymi.

Wygląda na to, że plik setup.py miał dry-run. Ludzie pytają o to gdzie indziej.

Pewien postęp w tym kierunku można znaleźć tutaj:

-1

Z pip wersji 9 jest nowa opcja --format freeze prowadzące do eleganckiego rozwiązania jednej linii dla pip install -r Przykład użycia:

pip list --format freeze | diff - requirements.txt 
+3

W przypadku wszystkich, poza najbardziej triwalnymi, będzie to oznaczać ogromną różnicę, ponieważ wymaganie.txt nie będzie uwzględniało zależności przechodnich (zależności zależności) –

Powiązane problemy