Używanie pip download dla instalacji modułów Python na środowiskach bez dostępu do pypi
Czasami (raczej nawet rzadko) trafiają się sytuacje gdy instalacja modułów Python za pomocą standardowej procedury pip install <nazwa> bądź pip install -r requirements.txt jest niemożliwa. Powodem do tego mogą służyć brak internetu lub obecna polityka bezpieczeństwa klienta.
Rozwiązaniem tego problemu jest <joke>tworzenie aplikacji bez użycia zewnętrznych modułów</joke> dostarczanie modułów osobno, uprzednio pobierając i pakując ich na środowisku które dostęp do pypi ma.
Robi się to za pomocą polecenia pip download. Pozwala ono pobierać moduły na lokalne środowisko, nie instalując ich.
W tym artykułe rozglądam tylko jeden przypadek użycia, z pełną listą możliwości, flag i parametrów można zapoznać się wywołując help.
pip help download
Żeby pobrać potrzebne moduły i spakować ich należy wykonać polecenie
pip download <nazwa modułu>
Zapisze ono wymagany moduł do obecnego katalogu (co jest nie zawsze wygodne). Dlatego polecam z korzystania z flagi -d, która pozwala doprecyzować konkretny folder dla zapisywania modułu.
pip download <nazwa modułu> -d /home/oleksandr/modules_to_save
Oczywiście, nikt nie zabrania pobieranie modułów zdefiniowanych w pliku requirements.txt:
pip download -r requirements.txt -d /home/oleksandr/modules_to_save
Tak, w folderze modules_to_save pojawią się wszystkie potrzebne moduły, a także ich zależności. Teraz można ich spakować do archiwum i wysyłać (w jakikolwiek wygodny sposób) na środowisko, na którym trzeba te moduły zainstalować.
Instalacja robi się generalnie tak samo jak normalnie, tylko że używamy flagi --find-links i definiujemy folder z którego te moduły trzeba pobrać.
pip install -r requirements.txt --find-links /home/server/folder_z_modulami
Gotowe!















