можно ли выкачать библиотеки которые используются в скрипте, положить их как-то рядом, или указать их путь, что бы в дальнейшем скрипт за ними не ходил в интернеты, и использовал те, которые уже скачаны?
-
Что вам даст ответ "можно" или "нельзя"?– V.March18 дек 2019 в 15:33
-
1А скрипт и не ходит в интернеты за модулями.– Эникейщик18 дек 2019 в 15:55
-
как ни крути когда ты устанавливаешь модуль он скачивается на пк,можешь найти его и использовать как душе угодно.– krytoy4el18 дек 2019 в 16:00
-
@Эникейщик Он бегает.– Ver Nick18 дек 2019 в 21:04
2 ответа
Wheel - современный формат распространения пакетов в Python, который пришел на смену egg.
Для начала вам понадобится последняя версия pip
pip3 install -U pip
И пакет для поддержки колес.
pip3 install wheel
Удобно будет создать директорию, куда будут упакованы whl пакеты.
mkdir whls
Упакуйте все зависимости проекта с помощью wheel.
pip3 wheel --wheel-dir=whls/ -r requirements.txt --pre --allow-all-external
эта команда упакует все зависимости проекта в директрию whls, которую вы передаете кому-то. Стоит обратить внимание что некоторые пакеты, например из VCS упакованы не будут, для них требуется в ручную создавать whl через setup.py bdist_wheel
.
cd venv/src/package_name # идем в директорию с исходниками пакета
python setup.py bdist_wheel --dist-dir /project/dir/whls/ # упаковываем его в whl
Установить пакеты:
pip3 install --no-index --find-links=/whls -r requirements.txt
Также можно поднять локальный репозиторий PyPi, например https://pypi.org/project/pypiserver/, и складировать в него все пакеты проекта, чтобы они были доступны всей команде.
Также сам pip имеет локальный кэш с whl пакетами, которые он скачивает при установке зависимостей, он не будет ходить за пакетом если требуемая версия пакета имеется в кэше.
Все модули python (как стандартные, так и установленные пользователем) находятся в папке
% корневая папка Python %/Lib
.
У меня python установлен в D:/Python34/
. Тогда модули нужно искать в D:/Python34/Lib
.
Вы можете скопировать оттуда нужные вам модули в ваш проект, и в таком случае импортировать модуль с помощью конструкции import .название
.
Примеры такого импорта:
import .math
from .tkinter import *
Соответственно, в таком случае вы должны при передаче файлов проекта на другой компьютер передавать и каталоги модулей, так как теперь они являются частью вашего проекта, равно как и файлы проекта, которые вы создаёте сами.