]> git.parisson.com Git - timeside.git/commitdiff
Add a check hook at initialisation to link Gstreamer python librairies inside virtual...
authorThomas Fillon <thomas@parisson.com>
Fri, 9 Jan 2015 14:45:44 +0000 (15:45 +0100)
committerThomas Fillon <thomas@parisson.com>
Sat, 10 Jan 2015 08:54:28 +0000 (09:54 +0100)
setup.py
timeside/core/__init__.py
timeside/core/processor.py
timeside/tools/package.py

index e7f13960a20e646b4364c3cfa3027c5399cea866..3412a2e7c4d532610d72f83a124674a0022d8230 100755 (executable)
--- 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
 
 
index 866f509780d471ea1e6bb1ff61f4433b3abc1b4c..364a300f9efce2a716ceaa27195022bf694ebbf1 100644 (file)
@@ -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()
index 40a08814bba6e9fe13e884a72ba8dc4df8945f9e..8c6efb395c049c96c312fbaf3678eddf55f07454 100644 (file)
@@ -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',
index c5f2c74ec698f8bc138f130d80e347109ac52a38..a31b887264753648ff00d91335c77dd2f4bcadf6 100644 (file)
 
 # Author: Thomas Fillon <thomas.fillon@parisson.com>
 
-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()
+