Jaki jest najlepszy sposób na pobranie pakietu Pythona i jego zależności z pypi w celu instalacji offline na innym komputerze? Czy jest jakiś łatwy sposób na zrobienie tego za pomocą pip lub easy_install? Próbuję zainstalować bibliotekę żądań na komputerze z FreeBSD, który nie jest połączony z Internetem.
python
pip
freebsd
easy-install
python-requests
Chris Drantz
źródło
źródło
Odpowiedzi:
Jeśli pakiet znajduje się w PYPI, pobierz go i jego zależności do jakiegoś lokalnego katalogu. Na przykład
Niektóre pakiety mogą wymagać ręcznego archiwizowania w podobnie wyglądających paczkach. Robię to często, gdy chcę mieć nowszą (mniej stabilną) wersję czegoś. Niektórych pakietów nie ma w PYPI, więc to samo dotyczy ich.
Załóżmy, że masz poprawnie utworzoną aplikację w języku Python w
~/src/myapp
.~/src/myapp/setup.py
będzie miećinstall_requires
listę, która wymienia jedną lub więcej rzeczy, które masz w swoim/pypi
katalogu. Tak jak to:Jeśli chcesz mieć możliwość uruchamiania aplikacji ze wszystkimi niezbędnymi zależnościami, a jednocześnie nadal ją hakujesz, zrobisz coś takiego:
W ten sposób Twoja aplikacja zostanie wykonana bezpośrednio z katalogu źródłowego. Możesz włamać się do rzeczy, a następnie ponownie uruchomić aplikację bez odbudowywania czegokolwiek.
Jeśli chcesz zainstalować swoją aplikację i jej zależności w obecnym środowisku Pythona, zrobisz coś takiego:
W obu przypadkach kompilacja zakończy się niepowodzeniem, jeśli w
/pypi
katalogu nie ma co najmniej jednej zależności . Nie będzie próbować swobodnie instalować brakujących rzeczy z Internetu.Gorąco polecam do powoływania
setup.py develop ...
ieasy_install ...
wewnątrz aktywnym środowisku wirtualnym , aby uniknąć zanieczyszczenia środowiska globalnego Pythona. Jest to (to znaczy virtualenv) droga do zrobienia. Nigdy nie instaluj niczego w globalnym środowisku Pythona.Jeśli maszyna, na której zbudowałeś swoją aplikację, ma taką samą architekturę jak maszyna, na której chcesz ją wdrożyć, możesz po prostu złożyć w archiwum cały katalog środowiska wirtualnego, w którym
easy_install
wszystko zostało umieszczone. Jednak tuż przed utworzeniem archiwum tarballu należy umożliwić relokację katalogu środowiska wirtualnego (zobacz opcję --relocatable ). UWAGA: maszyna docelowa musi mieć zainstalowaną tę samą wersję Pythona, a także wszelkie zależności oparte na języku C, które może mieć Twoja aplikacja, również muszą być tam wstępnie zainstalowane (np. Jeśli jesteś zależny od PIL , to libpng, libjpeg itp. Muszą być wstępnie zainstalowane) .źródło
--allow-hosts=None
ciebie mógłbyś użyć przełącznika--no-index
Polecenie pip
download
umożliwia pobieranie pakietów bez ich instalowania:pip download -r requirements.txt
(W poprzednich wersjach pip było to pisane
pip install --download -r requirements.txt
).Następnie możesz użyć
pip install --no-index --find-links /path/to/download/dir/ -r requirements.txt
do zainstalowania pobranych list sdists bez dostępu do sieci.źródło
--find-links file:/path/to/some/dir/
i powinieneś pobrać i zainstalować z tą samą wersją pip - w przeciwnym razie może się nie powieśćJeśli chcesz zainstalować biblioteki Python i ich zależności w trybie offline, zakończ następujące kroki na komputerze z tym samym systemem operacyjnym, podłączoną siecią i zainstalowanym językiem Python:
1) Utwórz
requirements.txt
plik o podobnej zawartości (Uwaga - są to biblioteki, które chcesz pobrać):Jedną z opcji tworzenia pliku wymagań jest użycie
pip freeze > requirements.txt
. Spowoduje to wyświetlenie wszystkich bibliotek w twoim środowisku. Następnie możesz wejśćrequirements.txt
i usunąć niepotrzebne.2) Wykonaj polecenie,
mkdir wheelhouse && pip download -r requirements.txt -d wheelhouse
aby pobrać biblioteki i ich zależności do kataloguwheelhouse
3) Skopiuj wymagania.txt do
wheelhouse
katalogu4) Zarchiwizuj sterówkę do
wheelhouse.tar.gz
ztar -zcf wheelhouse.tar.gz wheelhouse
Następnie prześlij
wheelhouse.tar.gz
na komputer docelowy:1) Wykonaj,
tar -zxf wheelhouse.tar.gz
aby wyodrębnić pliki2) Uruchom,
pip install -r wheelhouse/requirements.txt --no-index --find-links wheelhouse
aby zainstalować biblioteki i ich zależnościźródło
pip install
w końcu mówi: BŁĄD: nie mogłem znaleźć wersji, która spełnia wymagania .. "Python offline. do tego używam virtualenv (izolowane środowisko Pythona)
1) Zainstaluj virtualenv online za pomocą pip:
lub offline za pomocą whl: przejdź do tego linku , pobierz ostatnią wersję (.whl lub tar.gz) i zainstaluj ją za pomocą tego polecenia:
używając
--user
, nie musisz używaćsudo pip…
.2) użyj virtualenv
na maszynie online wybierz katalog z terminalem
cd
i uruchom ten kod:po zainstalowaniu wszystkich pakietów, musisz wygenerować,
requirements.txt
więc gdy twój virtualenv jest aktywny, napiszotwórz nowy terminal i utwórz kolejny podobny do env
myenv2
.teraz możesz przejść do folderu offline, w którym znajduje się Twój folder
requirements.txt
itranferred_packages
. pobierz pakiety z następującym kodem i umieść je wszystkie wtranferred_packages
folderze.przenieś folder offline na komputer offline, a następnie
co jest w folderze offline [Requirements.txt, tranferred_packages {Flask-0.10.1.tar.gz, ...}]
lista kontrolna twojego pakietu
uwaga: tak jak w 2017 roku lepiej jest używać pythona 3. tym poleceniem można stworzyć python 3 virtualenv.
źródło
Pobierz archiwum , prześlij je na swój komputer z FreeBSD i wypakuj, a następnie uruchom
python setup.py install
i gotowe!EDYCJA: Żeby to dodać, możesz teraz zainstalować paczki z pip.
źródło
Pozwól, że przejdę przez proces krok po kroku:
otwórz wiersz polecenia lub powłokę i wykonaj następujące polecenie:
Załóżmy, że żądany pakiet to
tensorflow
$ pip download tensorflow
Teraz na komputerze docelowym skopiuj
packages
folder i zastosuj następujące polecenieNależy pamiętać, że
tensorflow-xyz.whl
należy zastąpić oryginalną nazwę wymaganego pakietu.źródło
Używanie
wheel
skompilowanych pakietów.zbierać:
skopiuj archiwum i zainstaluj:
Uwaga:
wheel
pakiety binarne nie znajdują się na różnych maszynach.Więcej ref. tutaj: https://pip.pypa.io/en/stable/user_guide/#installation-bundles
źródło
Miałem podobny problem. Musiałem zainstalować go w ten sam sposób, co robimy z pypi.
Zrobiłem następujące rzeczy:
Utwórz katalog do przechowywania wszystkich pakietów na komputerze, które mają dostęp do Internetu.
Pobierz wszystkie pakiety do ścieżki
Taruj katalog z pakietami i skopiuj go do Maszyny, która nie ma dostępu do Internetu. Następnie zrób
Skopiuj packages.tar.gz na komputer docelowy, który nie ma dostępu do Internetu.
Na komputerze, który nie ma dostępu do Internetu, wykonaj następujące czynności (zakładając, że skopiowałeś tarowane pakiety do / path / to / package / w bieżącej maszynie)
i wklej następującą zawartość do środka i zapisz ją.
Na koniec sugeruję użycie jakiejś formy
virtualenv
do instalacji pakietów.Powinieneś móc pobrać wszystkie moduły, które znajdują się w katalogu / ścieżka / do / pakiet / .
Uwaga: zrobiłem to tylko dlatego, że nie mogłem dodać opcji ani zmienić sposobu instalowania modułów. W przeciwnym razie zrobiłbym to
źródło
W przypadku Pip 8.1.2 możesz
pip download -r requ.txt
pobrać pakiety na komputer lokalny.źródło