MyTetra Share
Делитесь знаниями!
Как установить пакет PIP на компьютере без сети Интернет
Время создания: 07.04.2023 09:47
Текстовые метки: python, pip, пакет, перенести, установка, сеть, без Интернет, offline, оффлайн
Раздел: Компьютер - Программирование - Язык Python
Запись: xintrea/mytetra_syncro/master/base/1680850020q8cxfnoaim/text.html на raw.github.com

Имеется внутренняя сеть предприятия, в которой ведется разработка на Python3. Компьютеры данной сети не имеет доступа в сеть Интернет.



Вопрос: как с компьютера, подключенного к сети Интернет, перенести файлы, из которых состоит PIP-пакет, на компьютер, у которого нет доступа к сети Интернет?



Решение следующее.



На компьютере, подключенном к сети Интернет


Обычно PIP пакет, при наличии сети Интернет, устанавливается командой:



pip install имя.пакета



Все действия проводятся под обычным пользователем, переходить под root (суперпользователя) не нужно.


Далее будет предполагаться, что устанавливается пакет ruamel.yaml. Тогда установка пакета происходит командой:



pip install ruamel.yaml



Чтобы получить в явном виде файлы пакета ruamel.yaml, надо создать пустой каталог, и в нем создать файл packagesList.txt. В этом файле надо прописать, какие пакеты необходимо выкачать:



echo "ruamel.yaml" > packagesList.txt



Примечание: имена пакетов в этом файле пишутся в отдельных строках. При необходимости можно указывать версии устанавливаемых пакетов, используя следующий синтаксис:


Flask==0.12

requests>=2.7.0

scikit-learn==0.19.1

numpy==1.14.3

pandas==0.22.0



Далее файлы пакета/пакетов выкачиваются командой:



pip download -r packagesList.txt



В результате в том же каталоге будут размещены *.whl файлы пакета и его зависимостей:



ruamel.yaml-0.17.21-py3-none-any.whl

ruamel.yaml.clib-0.2.5-cp35-manylinux_2_17_x86_64.manylinux_2_24_x86_64.whl



Эти файлы, вместе с файлом packagesList.txt, надо скопировать на Flash-ку или любым другим путем перенести на компьютер, отключенный от сети Интернет.



На компьютере, где нет доступа к сети Интернет


Если на данном компьютере установлена пакетная система PIP, то в каталоге с whl-файлами следует выполнить команду:



pip install --no-index --find-links ./ -r packagesList.txt



Все, пакет установлен.


Однако может получиться ситуация, когда на компьютере без доступа к сети Интернет просто не установлен пакетный менеджер PIP, и установить его неоткуда. Тогда можно поступить двумя путями:



  • установить пакетный менеджер PIP из исходников,
  • либо распаковать *.whl файлы и пользоваться библиотеками из пакета напрямую.



Установка менеджера PIP из исходников


Исходники менеджера PIP можно выкачать с официального сайта проекта со страницы:



https://pypi.org/project/pip/#files



Файл с исходниками называется примерно так: pip-23.0.1.tar.gz. Его надо скачать и распаковать в отдельную директорию. Затем, находясь в этой директории, надо дать команду:



python3 setup.py install



Менеджер PIP будет установлен.



Использование библиотек из *.whl файла напрямую


Файлы с расширением *.whl на самом деле представляют собой zip-архивы. Чтобы их распаковать, надо либо переименовать расширение на *.zip, либо просто войти вовнутрь через Midnight Commander, нажав клавишу Enter на *.whl файле.


Внутри *.whl файла находятся примерно следующие файлы и каталоги:



unzip -l ruamel.yaml-0.17.21-py3-none-any.whl


Archive: ruamel.yaml-0.17.21-py3-none-any.whl

Length Date Time Name

--------- ---------- ----- ----

539 2022-02-12 08:52 ruamel.yaml-0.17.21-py3.9-nspkg.pth

1897 2022-02-12 08:49 ruamel/yaml/__init__.py

508 2022-02-09 07:22 ruamel/yaml/anchor.py

39201 2022-02-09 07:22 ruamel/yaml/comments.py

7546 2022-02-09 07:22 ruamel/yaml/compat.py

8387 2022-02-09 07:22 ruamel/yaml/composer.py

342 2022-02-09 07:22 ruamel/yaml/configobjwalker.py

72207 2022-02-12 08:29 ruamel/yaml/constructor.py

6544 2022-02-09 07:22 ruamel/yaml/cyaml.py

6585 2022-02-09 07:22 ruamel/yaml/dumper.py

67537 2022-02-09 07:22 ruamel/yaml/emitter.py

9506 2022-02-09 07:22 ruamel/yaml/error.py

5496 2022-02-09 07:22 ruamel/yaml/events.py

3071 2022-02-09 07:22 ruamel/yaml/loader.py

59295 2022-02-11 10:07 ruamel/yaml/main.py

...



Распаковку *.whl файла можно сделать любым архиватором. Полученные таким образом файлы можно включить в проект на Python, и использовать их напрямую, указав при импорте правильный относительный путь к нужному *.py файлу.


Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования