AcademySoftwareFoundation / OpenTimelineIO

Open Source API and interchange format for editorial timeline information.
http://opentimeline.io
Apache License 2.0
1.43k stars 279 forks source link

pyside 6.2.4 not working for otioview #1247

Open meshula opened 2 years ago

meshula commented 2 years ago

Bug Report

otioview works if one does pip install pyside6==6.2.3 otioview does not work if one does pip install pyside6==6.2.4

the symptom is that the timeline does not render with 6.2.4, and the UI is unresponsive.

To Reproduce

  1. Operating System

macos 10.13 and greater x86_64, and M1

  1. Python version

verified under 3.9 and 3.10

alexanderhong commented 1 year ago

I was able to reproduce this bug on MacOS 12.6 with Python 3.8. It also happens with 6.3.0 installed over pip.

otioview works again with 6.3.1 from pip, but it breaks with an error message when using 6.3.2 from pip. That seems to be a separate issue, with the following error: IndexError: Signature "triggered()" not found for signal: "triggered". Available candidates: "triggered(QAction*)". I found a potential fix for 6.3.2 by updating the otioview code based on the error message, but that fix doesn't change the empty timeline behavior in PySide 6.2.4 or 6.3.0.

This seems to be a case of otioview hitting a bug or otherwise being incompatible with specific builds of PySide6. I'm not familiar enough with PySide6 to know what changes to that library are related.

meshula commented 1 year ago

Thanks for the update.

waldirio commented 1 year ago

Hello all

I'm facing the same issue

Python 3.11.1
PySide6 6.4.2

I was also able to put otioviewer working on previous version

(otio-p37) $ python --version
Python 3.7.16
(otio-p37) $ pip list
Package            Version
------------------ -------
OpenTimelineIO     0.15.0
pip                23.0.1
pyaaf2             1.6.0
PySide6            6.3.1
PySide6-Addons     6.3.1
PySide6-Essentials 6.3.1
setuptools         62.6.0
shiboken6          6.3.1
meshula commented 1 year ago

This is definitely a case where the assistance of a Qt or PySide expert would be needed. Beyond recommending an old PySide, or speculatively rewriting the timeline widget in hopes of dodging the problem through luck, I'm not sure how to move forward here. If anyone knows an expert please direct them to this issue.

meshula commented 1 year ago

I'll also direct you, as a possibility, to our new project https://github.com/OpenTimelineIO/raven Written in C++ and on Dear ImGui, it's got a very high performance timeline render, and already does more than otioview.

waldirio commented 1 year ago

Hello,

Thank you @meshula, I'm trying it now and I'm getting some issues to build.

(otio-p37) [wpinheir@ironman build]$ cmake ..
-- Checking for module 'gtk+-3.0'
--   Package 'gtk+-3.0', required by 'virtual:world', not found
CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:607 (message):
  A required package was not found
Call Stack (most recent call first):
  /usr/share/cmake/Modules/FindPkgConfig.cmake:829 (_pkg_check_modules_internal)
  libs/CMakeLists.txt:6 (pkg_check_modules)

-- Configuring incomplete, errors occurred!
See also "/home/wpinheir/code/raven/build/CMakeFiles/CMakeOutput.log".

I'll check it once I get back.

Thanks Waldirio

waldirio commented 1 year ago

@meshula

FYI https://github.com/OpenTimelineIO/raven/issues/9

meshula commented 1 year ago

Glad to see you got raven building. I'm leaving this issue open since of course it would be good if things worked with pyside 6.2.4.

gwenael-hagenmuller commented 10 months ago

Thanks for reporting this issue @meshula and @waldirio. I had IndexError: Signature "triggered()" not found for signal: "triggered". Available candidates: "triggered(QAction*)" too with PySide 6.6.0. Thanks to both of you I was able to run otioview. I thought I would share my pyproject.toml that I used to set up my Python virtual environment (I use pyenv and Poetry) since that could help other users:

[tool.poetry]
name = "opentimelineio-toolset"
version = "0.15.0"
description = "To be able to run otioview <https://github.com/AcademySoftwareFoundation/OpenTimelineIO/issues/1247>"
authors = ["Gwenaël Hagenmuller <https://github.com/gwenael-hagenmuller>"]

[tool.poetry.dependencies]
# PySide 6.3.1 requirements: "<3.11,>=3.6"
# opentimelineio 0.15.0 requirements: ">2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*, !=3.9.0"
python = "<3.11,>=3.10" 

[tool.poetry.group.dev.dependencies]
pyside6 = "6.3.1"
opentimelineio = "0.15.0"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"