Ошибка вызова API модуля Python в плагине Gstreamer - PullRequest
0 голосов
/ 13 марта 2020

Я пишу фильтр gstreamer, такой как плагин, для которого нужно вызвать API модуля python, и я проверяю плагин с помощью простого приложения gstreamer в конвейере. Обычно C ++ вызывает Python API следующим образом:

#include "Python.h"
#include "numpy/arrayobject.h"

void init_numpy(){
    import_array();
}

int main(int argc, char **argv) 
{
    Py_Initialize();     
    init_numpy(); 

    // do something

    Py_Finalize(); 
    return 0; 
}

, если я ставлю выше init_ numpy () и вызываю Python API в gst-app, все хорошо, однако после того, как я поставлю init_ numpy () в код плагина фильтра, за которым следует Python вызов API, затем связывание фильтра с конвейером gst-приложения и запуск приложения, я всегда получаю ниже запущенную проблему:

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/numpy/__init__.py", line 142, in <module>
    from . import core
  File "/usr/local/lib/python2.7/dist-packages/numpy/core/__init__.py", line 71, in <module>
    raise ImportError(msg)
ImportError: 

IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!

Importing the multiarray numpy extension module failed.  Most
likely you are trying to import a failed build of numpy.
Here is how to proceed:
- If you're working with a numpy git repository, try `git clean -xdf`
  (removes all files not under version control) and rebuild numpy.
- If you are simply trying to use the numpy version that you have installed:
  your installation is broken - please reinstall numpy.
- If you have already reinstalled and that did not fix the problem, then:
  1. Check that you are using the Python you expect (you're using /usr/bin/python),
     and that you have no directories in your PATH or PYTHONPATH that can
     interfere with the Python and numpy versions you're trying to use.
  2. If (1) looks fine, you can open a new issue at
     https://github.com/numpy/numpy/issues.  Please include details on:
     - how you installed Python
     - how you installed numpy
     - your operating system
     - whether or not you have multiple versions of Python installed
     - if you built from source, your compiler versions and ideally a build log

     Note: this error has many possible causes, so please don't comment on
     an existing issue about this - open a new one instead.

Original error was: /usr/local/lib/python2.7/dist-packages/numpy/core/_multiarray_umath.so: undefined symbol: PyExc_UserWarning

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Redistribute latency...

Я сомневаюсь, что плагин gst может вызывать python API модуля, но делать это в gst-app мне нормально. Кто-нибудь знает в чем причина и как ее решить?

спасибо большое.

...