[devel] Q: python default byte-compilation paths list compilation

Евгений Ростовцев real.altlinux.org на gmail.com
Ср Фев 17 06:59:15 UTC 2010


Привет!

> Я посмотрел, где, помимо %_target_libdir/python%__python_version и
> %_target_libdir_noarch/python%__python_version, у нас в Сизифе
> встречаются модули для python, и обнаружил следующее:

Таких мест много, а разве %add_python_lib_path действует только во
время сборки? Если нет, может быть, имеет смысл завести аналогичных
макрос для рантайма, чтобы отучить юзеров и мейнтейнеров устанавливать
PYTHONPATH? Ведь нестандартные места для питоньих модулей вполне
оправданы: например, у меня есть ряд пакетов, собираемых для
действительных и комплексных чисел (это из-за различного набора фич
PETSc для обоих случаях). Поэтому мне вручную (т.е. скриптом)
приходится обновлять PYTHONPATH (либо %_libexecdir/petsc-real/python,
либо %_libexecdir/petsc-complex/python). Но мой случае - от него
никуда не деться, это ведь переключение контекста, там и
LD_LIBRARY_PATH ещё задействован, и PATH, к примеру.

А вот для единичных реализаций даже не знаю (про это ниже).

> - Некоторые модули находятся в экзотических местах, например:
> /usr/include/wx-2.8/wx/wxPython/i_files/__init__.py
> /usr/share/Tartarus/common/__init__.py
> /usr/share/apps/kexi/kross/python/kexiapp/__init__.py
> /usr/share/chestnut-dialer/chestnut_dialer/__init__.py
> /usr/share/connexion/bus/__init__.py
> /usr/share/decibel-audio-player/src/gui/__init__.py
> Мне не очевидно, стоит ли автоматически запускаемый
> /usr/lib/rpm/python.compileall.py распространять на них (сейчас этого
> не происходит).

Думаю, не стоит. Думаю, лучше мейнтейнерам создавать символические
ссылки внутрь %python_sitelibdir.

> /usr/lib/listen/parse/__init__.py
> Мне не очевидно, стоит ли автоматически запускаемый
> /usr/lib/rpm/python.compileall.py распространять на них (сейчас это
> происходит)

См. мой абзац выше. Давайте всё же окультурим питон и будем его модули
располазать в стандартном месте (нестандартную ситуацию с PETSc я
описал, вот здесь нужно /usr/lib/rpm/python.compileall.py
задействовать обязательно, но только если сам мейнтейнер об этом в
спеке попросит (ещё один макрос?).

-- 
REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ


Подробная информация о списке рассылки Devel