23 lines
1.2 KiB
Bash
23 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
# 由两个 Qt 启动器 source;独立目录固定 PySide6 和 shiboken,不替换 ROS 环境的包。
|
|
orisys_qt_env() {
|
|
local qt_version="6.8.3" qt_python qt_dir qt_temp
|
|
qt_python="$(python3 -c 'import sys; print(f"{sys.version_info.major}{sys.version_info.minor}")')"
|
|
qt_dir="${XDG_DATA_HOME:-${HOME}/.local/share}/orisys_arm/qt-${qt_version}-py${qt_python}"
|
|
if ! PYTHONPATH="${qt_dir}" python3 -c 'import PySide6, shiboken6; assert PySide6.__version__ == shiboken6.__version__ == "6.8.3"' >/dev/null 2>&1; then
|
|
echo "[Qt] 首次安装工位独立界面依赖 PySide6 ${qt_version}……" >&2
|
|
mkdir -p "$(dirname "${qt_dir}")"
|
|
qt_temp="$(mktemp -d "${qt_dir}.XXXXXX")"
|
|
if ! python3 -m pip install --disable-pip-version-check --target "${qt_temp}" -r "${ROOT}/station/requirements-qt.txt"; then
|
|
rm -rf "${qt_temp}"
|
|
echo "[Qt] 界面依赖安装失败,请检查网络后重新启动。" >&2
|
|
return 1
|
|
fi
|
|
rm -rf "${qt_dir}"
|
|
mv "${qt_temp}" "${qt_dir}"
|
|
fi
|
|
export PYTHONPATH="${qt_dir}${PYTHONPATH:+:${PYTHONPATH}}"
|
|
# 避免继承 OpenCV 等组件设置的其他 Qt 版本插件目录。
|
|
unset QT_PLUGIN_PATH QT_QPA_PLATFORM_PLUGIN_PATH
|
|
}
|