вторник, 26 сентября 2023 г.

Установка дополнительных Python библиотек в QGIS


Иногда, когда вы работаете в QGIS с каким-нибудь специфическим модулем у вас может возникнуть необходимость установки дополнительной Python библиотеки, которая необходима для работы этого модуля. На пример QGIS плагин QNEAT3 для работы требует дополнительной установки Python библиотеки matplotlib, плагин dzetsaka : Classification tool для поноценной работы нуждается в Python библиотеке scitkit-learn, плагин Google Earth Engine нуждается в библиотеке EE, плагин Deepness: Deep Neural Remote Sensing нуждается в библиотеках opencv-python-headless и onnxruntime-gpu. Такие случаи встречаются если функционал реализованный в плагине использует инструментарий какой-то тяжелой библиотеки, которая не устанавливается вместе с QGIS по умолчанию и она слишком большая что устанавливать ее в процессе установки плагина.

Так же возможна ситуация если вы придумали какой то алгоритм обработки данных которому требуется какая то библиотека , которой нет в QGIS, на пример rasterio или Fiona.

Как устанавливать дополнительные Python библиотеки таким образом чтоб их мог видеть QGIS зависит от того какая у вас операционная система и версия QGIS. Рассмотрим несколько вариантов:

Windows:

В меню "Пуск" найдите папку "QGIS" и в ней ярлык "OSGeo4W Shell". Нажмите на него. Откроется окно терминала OSGeo4W Shell. Обратите внимание что этот терминал отличается от обычного Windows терминала, по скольку он "видит" изолированную "область" в операционной системе, которая была создана специально для работы QGIS при его установке. 


Дале зависит от того какая версия QGIS у вас установлена:


1. версия QGIS 3.20 или выше:

Выполните команду, которая активирует рабочее окружение :

o4w_env

и дождитесь ее выполнения, т.е. пока перестанут печататься строчки о происходящем процессе и снова станет активено приглашение ввести, команду которое заканчивается на мигающие символы >_ и введите команду для установки нужной библиотеки при помощи pip.
В данном примере я устанавливал библиотеку matplotlib. Заменяете matplotlib на название нужной вам библиотеки и устанавливаете ее:
python3 -m pip install matplotlib -U --user
Ожидаем пока скачаются и установятся библиотека и все ее зависимости. Если все пройдет благополучно, то в конце мы увидем строку Successfully installed ... в которой перечисленны названия и версии библиотек которые были установлены и новую строчку с приглашением ввести новую команду.


Если вы увидите сообщение об ошибке, то внимательно его читайте и пытайтесь понять в чем причина ошибки. Я чаще всего встречал ошибки если в операционной системе уже было установленно несколько программ, коорые используют свои интерпретаторы Python или Conda которые были некорректно настроены и конфликтовали с Python интерпретатором QGIS.

Если при установке библиотеки выводится ошибка и предупреждение, что у вас нет прав на запись в данном каталоге, то  нужно запустить OSGeo4W Shell как администратор. Как это делается, возможно запишу отдельным постом.


2. версия QGIS 3.18 и ниже:

В данном случае действия аналогичны примеру выше, но первым шагом будет выполнить команду:
py3_env.bat
и после того как активируется соответствующее окружение выполняем команду по установке нужной нам библиотеки.
python3 -m pip install matplotlib -U --user


3. В версии QGIS 2 все немного проще и немного сложнее одновременно.

Сначала нужно запустить OSGeo4W Shell от имени администратора и выполнить команду:

pip install matplotlib

Если же вы увидите сообщение что pip не установлен, то это будет отдельная история как его установить так чтоб его этот терминал видел и мог корректно с ним работать. Но поскольку QGIS 2 уже давно не используется я не буду расписывать подробно как его устанавливать.

Linux


Просто откройте системный терминал и выполните команду:
python3 -m pip install matplotlib -U --user

MacOS

 
С MacOS все интереснее, и сложнее, потому что эта операционная система защищена от грубого вмешательства и все программы довольно хорошо изолированы друг от друга.

Есть способ который позволяет устанавливать Python библиотеки непосредственно из интерфейса QGIS и он независит от типа операционной системы. Его описание это отдельный пост доступный для участнков моего Patreon >>>



Если вы хотите оперативно получать советы по решению задач в QGIS добавляйтесь в очень полезный Telegram-группу "QGIS взаимопомощь". В это чате уже более полутары тысяч участников, и постоянно идет активное общение и взаимопомощь!

QGIS взаимопомощь✊

Если статья для тебя полезна, подписывайся на мои каналы и группы в соцсетях:

      

Комментариев нет:

Отправить комментарий