From: Thomas Fillon Date: Fri, 9 Jan 2015 14:45:44 +0000 (+0100) Subject: Add a check hook at initialisation to link Gstreamer python librairies inside virtual... X-Git-Tag: 0.7^2~33 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=281c92c91274a2c6609a84391831b20992485e63;p=timeside.git Add a check hook at initialisation to link Gstreamer python librairies inside virtualenv or conda environment --- diff --git a/setup.py b/setup.py index e7f1396..3412a2e 100755 --- a/setup.py +++ b/setup.py @@ -1,9 +1,8 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- - +import sys from setuptools import setup -import sys from setuptools.command.test import test as TestCommand diff --git a/timeside/core/__init__.py b/timeside/core/__init__.py index 866f509..364a300 100644 --- a/timeside/core/__init__.py +++ b/timeside/core/__init__.py @@ -30,9 +30,12 @@ from .component import implements, interfacedoc, abstract __version__ = '0.6.2' +from ..tools import package as ts_package + +# Check Availability of Gstreamer python bindings +ts_package.check_gstreamer() # Check Availability of external Audio feature extraction librairies -from ..tools import package as ts_package _WITH_AUBIO = ts_package.check_aubio() _WITH_YAAFE = ts_package.check_yaafe() _WITH_VAMP = ts_package.check_vamp() diff --git a/timeside/core/processor.py b/timeside/core/processor.py index 40a0881..8c6efb3 100644 --- a/timeside/core/processor.py +++ b/timeside/core/processor.py @@ -30,8 +30,7 @@ import uuid import networkx as nx import inspect import os -import gobject -gobject.threads_init() + __all__ = ['Processor', 'MetaProcessor', 'implements', 'abstract', 'interfacedoc', 'processors', 'get_processor', 'ProcessPipe', diff --git a/timeside/tools/package.py b/timeside/tools/package.py index c5f2c74..a31b887 100644 --- a/timeside/tools/package.py +++ b/timeside/tools/package.py @@ -19,11 +19,11 @@ # Author: Thomas Fillon -from ..core.exceptions import VampImportError from importlib import import_module import warnings +from ..core.exceptions import VampImportError def discover_modules(subpackage, package=None): import pkgutil @@ -114,6 +114,7 @@ def check_yaafe(): def check_vamp(): "Check Vamp host availability" + from ..core.exceptions import VampImportError try: from timeside.plugins.analyzer.externals import vamp_plugin @@ -126,3 +127,36 @@ def check_vamp(): del vamp_plugin return _WITH_VAMP + +def add_gstreamer_packages(): + import os + import sys + from distutils.sysconfig import get_python_lib + + dest_dir = get_python_lib() + + packages = ['gobject', 'glib', 'pygst', 'pygst.pyc', 'pygst.pth', + 'gst-0.10', 'pygtk.pth', 'pygtk.py', 'pygtk.pyc'] + + python_version = sys.version[:3] + global_path = os.path.join('/usr/lib', 'python' + python_version) + global_sitepackages = [os.path.join(global_path, + 'dist-packages'), # for Debian-based + os.path.join(global_path, + 'site-packages')] # for others + + for package in packages: + for pack_dir in global_sitepackages: + src = os.path.join(pack_dir, package) + dest = os.path.join(dest_dir, package) + if not os.path.exists(dest) and os.path.exists(src): + os.symlink(src, dest) + + +def check_gstreamer(): + try: + import gobject, pygst + except ImportError: + print 'Add Gstreamer' + add_gstreamer_packages() +