Настройка PyCharm для Python Houdini на macOS
Настроить PyCharm так, чтобы он «понимал» hou из Houdini на macOS, бывает непросто. В этом гайде мы создадим локальное виртуальное окружение проекта на основе встроенного Python Houdini, установим тайп‑стабы, добавим рантайм‑пути Houdini в интерпретатор, привяжем внешний редактор Houdini к отдельному лаунчеру PyCharm и проверим результат — чтобы получить точный автокомплит и навигацию, не трогая встроенный интерпретатор Houdini.
Note
Платформа: macOS. Инструменты: SideFX Houdini, JetBrains PyCharm, JetBrains Toolbox.
Important
Цель: точный Code Insight для hou из Houdini в PyCharm с использованием локальной .venv/, созданной на базе Python Houdini. Встроенный интерпретатор Houdini остаётся нетронутым; все пакеты устанавливаются в .venv/.
Настройка Houdini¶
Соберите пути поиска Python Houdini для анализа IDE. В Python‑ноде выполните:
import sys
import pathlib
import json
sys_paths = [pathlib.Path(p).resolve().as_posix() for p in sys.path]
print(json.dumps(sys_paths, indent=4))
Скопируйте полученный JSON‑массив — он пригодится позже.
Tip
Эти пути нужны один раз. Они позволяют PyCharm видеть те же модули, которые Houdini добавляет в рантайме.
Настройка PyCharm¶
Создайте виртуальное окружение на базе Python Houdini (стандартный macOS‑путь «Current»):
/Applications/Houdini/Current/Frameworks/Python.framework/Versions/Current/bin/python3 -m venv .venv
Активируйте его при работе в терминале:
Выберите интерпретатор проекта в PyCharm:
- Preferences (Cmd + ,) → Project: .venv/bin/python → OK.
Установите тайп‑стабы в .venv:
Note
types-houdini добавляет .pyi‑стабы для hou. types-PySide2 — Qt‑стабы, часто используемые с Houdini.
Добавьте рантайм‑пути Houdini в Interpreter Paths (чтобы IDE видела те же модули):
- Preferences → Project: Python Interpreter → шестерёнка → Show All… → выберите ваш интерпретатор .venv → иконка папки (Interpreter Paths).
- Добавьте только те записи из вашего JSON, которых не хватает при запуске .venv/bin/python вне Houdini → Apply.
Включите скрипт JetBrains Toolbox для PyCharm и создайте понятный враппер:
- Toolbox App → Settings → включите “Generate shell scripts.”
- В Toolbox откройте запись PyCharm → включите её shell‑скрипт (на macOS обычно):
- ~/Library/Application Support/JetBrains/Toolbox/scripts/pycharm
- Создайте отдельный лаунчер для Houdini:
mkdir -p "$HOME/bin"
ln -s "$HOME/Library/Application Support/JetBrains/Toolbox/scripts/pycharm" \
"$HOME/bin/pycharm-houdini"
Запускайте окно проекта через этот лаунчер и держите его открытым:
Important
Держа это окно проекта открытым, вы гарантируете, что файлы, открываемые из Houdini, попадут именно в это окно PyCharm, настроенное на использование .venv/.
Возвращаемся в Houdini¶
Привяжите Houdini к PyCharm теперь, когда лаунчер pycharm-houdini существует:
- Edit → Preferences → Set External Text Editor → укажите:
- ~/bin/pycharm-houdini
Используйте “Edit in External Editor” в Python‑ноде. Файл должен открыться в уже запущенном окне проекта PyCharm (том самом, что вы стартовали через pycharm-houdini).
Выключите предупреждения об неразрешённом hou в файлах проекта (только для type‑check):
from typing import TYPE_CHECKING
if TYPE_CHECKING:
import hou # IDE/type-check only; ignored at runtime inside Houdini
Проверка¶
В редакторе кода:
Если geo отображается как Any, явно укажите контекст (пример для SOP):
Теперь автодополнение и навигация должны работать точно.
Устранение неполадок¶
import houпадает при запуске вне Houdini: так и задумано. IDE использует стабы для анализа; реальныйhouсуществует только внутри Houdini.- Модули не резолвятся в PyCharm: убедитесь, что Interpreter Paths добавлены именно в тот
.venv‑интерпретатор, который выбран у проекта; проверьте, что проект запущен черезpycharm-houdiniперед вызовом внешнего редактора из Houdini. - Houdini открывает другое окно: сперва запустите целевой проект через
pycharm-houdiniи держите его открытым; затем используйте “Edit in External Editor.”