Portál AbcLinuxu, 30. dubna 2025 10:45
"Trochu" jsem bojoval s kompilací pitivi z gitu na Ubuntu 12.10 (a podobně by to šlo na jiných distribucích s gstreamer-1.0). Hlavně kvuli zastaralým informacím na wiki a problémum s pygobject. Jasně, dá se použít automatický build script který je v gitu pitivi, ale ten instaluje vlastní pygobject (python-gi) i když je kompatibilní verze už v systému. Tady je návod krok po kroku na manuálni build.
Problém s PyGObject je ten, že se spoléhá na extend_path z pkgutil pro nalezení overrides modulů nainstalovaných zvlášť. Na tohle se extend_path zrovna nehodí, protože aby fungoval pořádně musí buď být __init__.py stejný ve všech cestách, a nebo se musí na 100% zajistit, aby PyGObject byl vždy v sys.path (sys.path se nastavuje z PYTHONPATH apod.) před overrides moduly.
Ještě před vlastním návodem na kompilaci pitivi, demonstrace problému s extend_path:
path1/nasbalik/__init__.py path1/nasbalik/a.py path2/nasbalik/b.py
I když v __init__.py v path1 použijeme extend_path, tak se modul b nestane součástí package "nasbalik" - což je imho škoda a klidně by se tady python mohl spoléhat jen na cestu a nevyžadovat __init__.py (protože i kdyby tam byl, tak se stejně ignoruje): Takže je potřeba, aby __init__.py byl v obou cestách, jenže:
path1/nasbalik/__init__.py path1/nasbalik/a.py path2/nasbalik/__init__.py path2/nasbalik/b.py
V tomto případě je zase problém že záleží na pořadí v sys.path který __init__.py se použije. Napadá mě vyžadovat, aby overrides moduly, které jsou nainstalovány mimo adresář PyGObject, vytvořily symlink na __init__.py v PyGObject. Idealní řešení by bylo použít namespace packages (PEP-420) z python 3.3.
No dobře, dost stěžování, teď už ten návod.
Nainstalujeme závislosti:
apt-get install git libgirepository1.0-dev automake libtool python-dev libgstreamer-plugins-bad1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev libgstreamer1.0-0 python-gi-dev gtk-doc-tools gnome-doc-utils gir1.2-goocanvas-2.0-9 gstreamer1.0-plugins-good gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-alsa gstreamer1.0-pulseaudio
Nainstalujeme pygobject overrides modul pro gstreamer: gst-python
git clone git://anongit.freedesktop.org/gstreamer/gst-python cd gst-python ./autogen.sh # no need for prefix as we wont install make
gst-editing-services z gitu:
git clone git://anongit.freedesktop.org/gstreamer/gst-editing-services cd gst-editing-services ./autogen.sh --prefix=$HOME/.local make make install
gnonlin plugin pro gstreamer:
git clone git://anongit.freedesktop.org/gstreamer/gnonlin cd gnonlin ./autogen.sh --prefix=$HOME/.local make make install
a konečně pitivi:
git clone git://git.gnome.org/pitivi cd pitivi ./autogen.sh make
a pustíme:
GI_TYPELIB_PATH=~/.local/lib/girepository-1.0/ LD_LIBRARY_PATH=~/.local/lib/ GST_PLUGIN_PATH=~/.local/lib/gstreamer-1.0/ PYTHONPATH=/usr/lib/python2.7/dist-packages/:../gst-python/ python bin/pitivi
Tiskni
Sdílej:
zypper in pitivi
Ještě že nám v OpenSuse postačí zadatA to nainstaluje posledni verzi z gitu?zypper in pitivi
Nainstaluje poslední verzi z Packmana. Kdysi jsem zkoušel nějaký devel a defacto to nebylo použitelné. Padalo to a od těch dob raději počkám na vydání nově verze.A jaka je v tom vyhoda oproti instalaci pomoci apt v ubuntu?
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.