LINUX.ORG.RU

Как указать локальный путь к Python2.6 для запуска Blender 2.49b?

 , ,


0

1

Надо запустить Blender 2.49b под Debian 9.x, но так как установка python2.6 стандартным путём не возможна, надо сделать редирект к локальному бинарнику и библиотеке Python2.6.

Для этого планирую распаковать в локальные папки содержимое следующих DEB-пакетов из PPA:deadsnakes:

Запуск Blender осуществляется с помощью Shell-скрипта blender-softwaregl:

#!/bin/sh
BF_DIST_BIN=`dirname "$0"`
BF_PROGRAM="blender" # BF_PROGRAM=`basename "$0"`-bin
exitcode=0

LD_LIBRARY_PATH=${BF_DIST_BIN}/lib:${LD_LIBRARY_PATH}

if [ -n "$LD_LIBRARYN32_PATH" ]; then
    LD_LIBRARYN32_PATH=${BF_DIST_BIN}/lib:${LD_LIBRARYN32_PATH}
fi
if [ -n "$LD_LIBRARYN64_PATH" ]; then
    LD_LIBRARYN64_PATH=${BF_DIST_BIN}/lib:${LD_LIBRARYN64_PATH}
fi
if [ -n "$LD_LIBRARY_PATH_64" ]; then
    LD_LIBRARY_PATH_64=${BF_DIST_BIN}/lib:${LD_LIBRARY_PATH_64}
fi

export LD_LIBRARY_PATH LD_LIBRARYN32_PATH LD_LIBRARYN64_PATH LD_LIBRARY_PATH_64 LD_PRELOAD

"$BF_DIST_BIN/$BF_PROGRAM" ${1+"$@"}
exitcode=$?
exit $exitcode

Если пытаюсь запустить Blender 2.49b он запускается НО использует встроенный урезанный Python 2.6.2

$ ./blender-softwaregl
Compiled with Python version 2.6.2.
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
'import site' failed; use -v for traceback
Checking for installed Python... No installed Python found.
Only built-in modules are available.  Some scripts may not run.
Continuing happily.

Как прописать в скрипте blender-softwaregl пути к ${BF_DIST_BIN}/lib/python2.6 и ${BF_DIST_BIN}/lib/python2.6/ чтобы Blender распознал их как расположение установки бинарника и библиотек Python2.6?

ССЫЛКИ

★★★★★

Последнее исправление: atsym (всего исправлений: 8)

Для этого планирую распаковать в локальные папки содержимое следующих DEB-пакетов:

А разве в BF-сборке пистон не идёт в комплекте?

MageasteR ★★★★★
()
Ответ на: комментарий от MageasteR

А разве в BF-сборке пистон не идёт в комплекте?

Нет, до версии Blender 2.5x, Python был внешней зависимостью.

atsym ★★★★★
() автор топика
Ответ на: комментарий от WitcherGeralt

Зачем, если 2.7 обратно совместим?

Дополнения от Blender 2.4x НЕ совместимы с 2.7x, и наборот.

Мне нужно запустить именно 2.4x.

atsym ★★★★★
() автор топика
Ответ на: комментарий от WitcherGeralt

У Blender 2.4x и 2.5x-2.7x сильно отличается API BPY + дополнения для Blender 2.4x написаны на Python 2.x; переписать их под Python3 возможности и времени нет.

Вопрос ведь не в этом, а в том как заставить бинарник использовать Python2.6 из нужной папки.

atsym ★★★★★
() автор топика
Последнее исправление: atsym (всего исправлений: 1)
Ответ на: комментарий от atsym

Ни малейшей идеи, нужно смотреть как блендер его запускает. Как вариант просто засунуть побольше алиасов (python,python26,python2.6) повыше в PATH, а библиотеки в PYTHONHOME и PYHONPATH и посмотреть что будет. Если не прокатит, пердолить pyenv.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 3)
Ответ на: комментарий от atsym

Дополнения от Blender 2.4x НЕ совместимы с 2.7x, и наборот.

Он про обратную совместимость пистонов 2.6 -> 2.7. Т.е. тебе не нужно ахаться с установкой 2.6, достаточно накатить 2.7

MageasteR ★★★★★
()
Последнее исправление: MageasteR (всего исправлений: 1)
Ответ на: комментарий от WitcherGeralt

Как вариант просто засунуть побольше алиасов (python,python26,python2.6) повыше в PATH, а библиотеки в PYTHONHOME и PYHONPATH и посмотреть что будет.

Собственно я и копаю в эту сторону; добавил следующее в экспорт:

PATH=${BF_DIST_BIN}/bin:${PATH}

PYTHONHOME=${BF_DIST_BIN}/lib/python2.6

PYHONPATH=${BF_DIST_BIN}/lib/python2.6

Немного лучше, но чего-то нехватает:

$ ./blender-softwaregl
Compiled with Python version 2.6.2.
'import site' failed; use -v for traceback
Checking for installed Python... No installed Python found.
Only built-in modules are available.  Some scripts may not run.
Continuing happily.
atsym ★★★★★
() автор топика

планирую распаковать в локальные папки содержимое следующих DEB-пакетов

Используй pyenv.

Вообще есть такая штука, docker называется…

ei-grad ★★★★★
()
Ответ на: комментарий от EXL

Странно, но когда запускаю strace ./blender-softwaregl &> strace.log то он находит (неизвестно где) какой-то Python.

$ strace ./blender-softwaregl &> strace.log
$ cat ./strace.log | grep -i python
wait4(-1, Compiled with Python version 2.6.2.
Checking for installed Python... got it!

И если так запускать то Blender 2.49b работает как надо! (все скрипты работают)

Куда копать? Можно конечно и так работать, но хотелось бы разобраться.

UPD: Всё, вроде понял как решить этот вопрос. (детали чуть-позже опишу)

atsym ★★★★★
() автор топика
Последнее исправление: atsym (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.