From 281c92c91274a2c6609a84391831b20992485e63 Mon Sep 17 00:00:00 2001 From: Thomas Fillon Date: Fri, 9 Jan 2015 15:45:44 +0100 Subject: [PATCH] Add a check hook at initialisation to link Gstreamer python librairies inside virtualenv or conda environment --- setup.py | 3 +-- timeside/core/__init__.py | 5 ++++- timeside/core/processor.py | 3 +-- timeside/tools/package.py | 36 +++++++++++++++++++++++++++++++++++- 4 files changed, 41 insertions(+), 6 deletions(-) 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() + -- 2.39.5