Openshot no se abre en Ubuntu 18.04, ningún módulo llamado PyQt5.QtWebKitWidgets

Openshot no se abre en Ubuntu 18.04, ningún módulo llamado PyQt5.QtWebKitWidgets

Lo instalé Openshoten Ubuntu 18.04 LTS con

sudo apt-get install openshot-qt

Y cuando intento abrirlo openshot-qten la terminal falla con un error:

Traceback (most recent call last):
  File "/usr/bin/openshot-qt", line 11, in <module>
    load_entry_point('openshot-qt==2.5.1.dev2', 'gui_scripts', 'openshot-qt')()
  File "/usr/lib/python3/dist-packages/openshot_qt/launch.py", line 97, in main
    app = OpenShotApp(argv)
  File "/usr/lib/python3/dist-packages/openshot_qt/classes/app.py", line 220, in __init__
    from windows.main_window import MainWindow
  File "/usr/lib/python3/dist-packages/openshot_qt/windows/main_window.py", line 45, in <module>
    from windows.views.timeline_webview import TimelineWebView
  File "/usr/lib/python3/dist-packages/openshot_qt/windows/views/timeline_webview.py", line 42, in <module>
    from PyQt5.QtWebKitWidgets import QWebView
ModuleNotFoundError: No module named 'PyQt5.QtWebKitWidgets'

Lo intenté sudo apt-get install python3-pyqt5.qtwebenginede acuerdo con estopregunta. Pero abrir openshot produce el mismo error, aunque el comando about da:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
python3-pyqt5.qtwebengine is already the newest version (5.10.1+dfsg-1ubuntu2).
0 upgraded, 0 newly installed, 0 to remove and 50 not upgraded.

¿Alguien puede dar la solución?

EDITAR:

Salida de apt-cache policy python3-pyqt5.qtwebkit:

python3-pyqt5.qtwebkit:
  Installed: 5.10.1+dfsg-1ubuntu2
  Candidate: 5.10.1+dfsg-1ubuntu2
  Version table:
 *** 5.10.1+dfsg-1ubuntu2 500
        500 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
        100 /var/lib/dpkg/status

Salida de ls -l /usr/lib/python3/dist-packages/PyQt5/:

-rw-r--r-- 1 root root     826 Feb 27  2018 __init__.py
drwxr-xr-x 2 root root    4096 Sep 15  2019 __pycache__
-rw-r--r-- 1 root root  237384 Apr 23  2018 _QOpenGLFunctions_2_0.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root  241624 Apr 23  2018 _QOpenGLFunctions_2_1.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root  122296 Apr 23  2018 _QOpenGLFunctions_4_1_Core.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root 2955992 Apr 23  2018 QtCore.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root  370919 Apr 23  2018 QtCore.pyi
-rw-r--r-- 1 root root    6120 Apr 23  2018 Qt.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root  212696 Apr 23  2018 QtDBus.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   22776 Apr 23  2018 QtDBus.pyi
-rw-r--r-- 1 root root  332392 Apr 23  2018 QtDesigner.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   22328 Apr 23  2018 QtDesigner.pyi
-rw-r--r-- 1 root root 3287320 Apr 23  2018 QtGui.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root  382629 Apr 23  2018 QtGui.pyi
-rw-r--r-- 1 root root  157560 Apr 23  2018 QtHelp.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root    9226 Apr 23  2018 QtHelp.pyi
-rw-r--r-- 1 root root  698304 Apr 23  2018 QtMultimedia.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   83508 Apr 23  2018 QtMultimedia.pyi
-rw-r--r-- 1 root root  102848 Apr 23  2018 QtMultimediaWidgets.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root    4571 Apr 23  2018 QtMultimediaWidgets.pyi
-rw-r--r-- 1 root root  859448 Apr 23  2018 QtNetwork.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   94874 Apr 23  2018 QtNetwork.pyi
-rw-r--r-- 1 root root  143192 Apr 23  2018 QtOpenGL.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   15653 Apr 23  2018 QtOpenGL.pyi
-rw-r--r-- 1 root root  239720 Apr 23  2018 QtPrintSupport.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   19835 Apr 23  2018 QtPrintSupport.pyi
-rw-r--r-- 1 root root  104528 Apr 23  2018 QtSvg.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root    5909 Apr 23  2018 QtSvg.pyi
-rw-r--r-- 1 root root  103104 Apr 23  2018 QtTest.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   10827 Apr 23  2018 QtTest.pyi
-rw-r--r-- 1 root root   33920 Apr 23  2018 QtWebChannel.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root    2480 Apr 23  2018 QtWebChannel.pyi
-rw-r--r-- 1 root root   67992 Apr 23  2018 QtWebEngineCore.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root    7141 Apr 23  2018 QtWebEngineCore.pyi
-rw-r--r-- 1 root root   54304 Apr 23  2018 QtWebEngine.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root    6582 Apr 23  2018 QtWebEngine.pyi
-rw-r--r-- 1 root root  239800 Apr 23  2018 QtWebEngineWidgets.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   32973 Apr 23  2018 QtWebEngineWidgets.pyi
-rw-r--r-- 1 root root  170264 Apr 23  2018 QtWebKit.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   18340 Apr 23  2018 QtWebKit.pyi
-rw-r--r-- 1 root root  317720 Apr 23  2018 QtWebKitWidgets.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   32123 Apr 23  2018 QtWebKitWidgets.pyi
-rw-r--r-- 1 root root 5498280 Apr 23  2018 QtWidgets.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root  500483 Apr 23  2018 QtWidgets.pyi
-rw-r--r-- 1 root root  315744 Apr 23  2018 QtXml.cpython-36m-x86_64-linux-gnu.so
-rw-r--r-- 1 root root   27507 Apr 23  2018 QtXml.pyi
drwxr-xr-x 7 root root    4096 Sep 15  2019 uic

Salida de python3 -c "import PyQt5.QtWebKitWidgets":

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'PyQt5.QtWebKitWidgets'

Respuesta1

Vale la pena entender lo que está sucediendo aquí ya que la solución parece contraria a la intuición:

  • openshot-qtestá escrito en Python y requiere el PyQt5.QtWebKitWidgetsmódulo proporcionado por el paquete de Ubuntu python3-pyqt5.qtwebkit.
  • Todos los módulos de Python instalados aptse instalan en /usr/lib/python3/dist-packages.
  • Todos los módulos de Python instalados por las herramientas de administración de paquetes de Python (por ejemplo, pip) se instalan en /usr/local/lib/python3.6/dist-packages. Hay excepciones a esta regla, como cuando se usaentorno virtualpero eso no es aplicable aquí.
  • Si existe un paquete tanto en como /usr/local/lib/python3.6/dist-packagesen /usr/lib/python3/dist-packages, la versión en /usr/local/lib/python3.6/dist-packagestiene prioridad (esta es la versión instalada por pip).
  • Éste es importante: PyQt5se eliminó QtWebKitWidgetsel soporte env5.6en su distribución. Ubuntu parece haber mantenido soporte personalizado en su paquete v5.10.
    • Parece que la versión instalada /usr/local/lib/python3.6/dist-packageses >= v5.6

Entonces, su problema es que hay una versión más nueva PyQt5instalada sin el módulo que necesita y que esencialmente anula la versión de Ubuntu que tiene el módulo que necesita. La solución es entonces eliminar la versión más nueva para que su sistema utilice la versión proporcionada por Ubuntu. Puedes hacer esto ejecutando sudo pip3 uninstall pyqt5. Después de hacerlo, confirme que el directorio /usr/local/lib/python3.6/dist-packages/PyQt5ya no existe.

Existe la posibilidad de que algún programa controlado no apto realmente necesite la versión más nueva, PyQt5pero este tipo de situación es para lo que sirve virtualenv.

información relacionada