При разработке аддонов иногда необходимо использовать пакеты, не входящие в базовый набор Python-интерпретатора Blender. Чаще всего нужные пакеты входят в в Python Package Index (PyPI) и могут быть установлены в Blender через систему управления пакетами Pip.
Для Windows 10 см. обновленную версию статьи.
Менеджер пакетов Pip изначально уже установлен в Blender. Однако Blender не позволяет вызвать команду установки нужного пакета обычным способом “pip install имя_пакета”.
Для того, чтобы установить нужный пакет в Blender с помощью Pip, нужно выполнить следующие действия:
Запустите Blender, откройте окно Text Editor и нажатием кнопки “New” создайте новый скрипт.
Для начала нужно получить полный путь к исполняемому файлу python.exe для текущего Python-интерпретатора в Blender.
1 2 3 4 5 6 |
import sys import os python_exe = os.path.join(sys.prefix, 'bin', 'python.exe') # 'C:\\Program Files\\blender283\\2.83\\python\\bin\\python.exe' |
Все дальнейшие действия будем выполнять в отдельном процессе, чтобы не тормозить работу самого Blender.
Сперва всегда рекомендуется проверить установку модуля pip, а также обновить его до последней версии.
1 2 3 4 |
import subprocess subprocess.call([python_exe, "-m", "ensurepip"]) subprocess.call([python_exe, "-m", "pip", "install", "--upgrade", "pip"]) |
После того, как pip будет гарантированно обновлен, можно устанавливать нужные зависимости.
Следующая команда установит в Python Blender нужный пакет. Замените package_name на название необходимого пакета.
1 |
subprocess.call([python_exe, "-m", "pip", "install", "package_name"]) |
Финальный код:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import subprocess import sys import os # path to python.exe python_exe = os.path.join(sys.prefix, 'bin', 'python.exe') # upgrade pip subprocess.call([python_exe, "-m", "ensurepip"]) subprocess.call([python_exe, "-m", "pip", "install", "--upgrade", "pip"]) # install required packages subprocess.call([python_exe, "-m", "pip", "install", "package_name"]) |
После выполнения скрипта, нажатием на кнопку “Run Script” в Python-интерпретатор Blender будет установлен нужный пакет.
Обратите внимание, что для корректной установки необходим активный доступ в Интернет. Также возможно потребуется запустить Blender от имени администратора.