-
Notifications
You must be signed in to change notification settings - Fork 288
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Python 3.9 Support #828
Comments
…e context about the Python 3.9.0/pybind11 bug.
* Added import aliasing for collections.abc module for python 3.9 support * Created local alias for inspect.getargspec to address python 3+ deprecation warning * Updated mutable sequence bindings to expose __next__ in compliance with PEP 3114. * Updated collections.abc rename behavior to match six's and use collections_abc. * Added python 3.9 to CI builds, updated python badge to match our CI builds - added 3.9 and corrected it still having 3.6 and missing 3.8. * Updated the python 2/3 compatibility on the inspect.getargspec to match the python 3 naming rather than python 2. * Removed python 3.9 from CI. See #828 for more context about the Python 3.9.0/pybind11 bug.
It looks like 3.9.1 is released: I'm not sure about how the python_requires works, but I know we do some manual checks at the top of the |
Note that there are a bunch of build warnings we'll need to tackle in 3.9:
|
That looks like motivation to get pybind11 updated |
yeah, hoping that addresses this issue. Note that pybind11 is also seeing some weird CI failure: #874 |
I don't know if it's completely relevant, but I've tried both the current master and the reinecke's >>> import opentimelineio
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\Felix\AppData\Local\Programs\Python\Python39\lib\site-packages\opentimelineio\__init__.py", line 35, in <module>
from . import (
File "C:\Users\Felix\AppData\Local\Programs\Python\Python39\lib\site-packages\opentimelineio\exceptions.py", line 26, in <module>
from . _otio import ( # noqa
ImportError: DLL load failed while importing _otio: A dynamic link library (DLL) initialization routine failed. The funny thing is, I only get this error on my personal windows computer. On my OSX and Windows at work, I get: >>> import opentimeline
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'opentimeline'
>>> import opentimelineio
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\fdavid\Downloads\blender-2.93.0-stable+blender-v293-release.84da05a8b806-windows.amd64-release\blender-windows64\2.93\python\lib\site-packages\opentimelineio\__init__.py", line 35, in <module>
from . import (
File "C:\Users\fdavid\Downloads\blender-2.93.0-stable+blender-v293-release.84da05a8b806-windows.amd64-release\blender-windows64\2.93\python\lib\site-packages\opentimelineio\opentime.py", line 1, in <module>
from . _opentime import ( # noqa
ModuleNotFoundError: No module named 'opentimelineio._opentime' I've tried to investigate, without any success until now... Everything works fine on Python<3.9 |
After some new experimentation, it seems no any opentimelineio version work on Python3.9, they all raise the |
I get the same error on python 3.8 |
Separating out mac and windows for a second, is it possible we are being hit, on Windows, with the new platform specific dll search behavior? https://docs.python.org/3/library/os.html#os.add_dll_directory If the _opentime.dll and .pyd files are in the same directory as the __init.py that invokes them, could you try adding a call to add_dll_directory to __init.py before the line of code that imports _opentime? Perhaps we can come back to the mac after the issue with the windows wheel is resolved. |
Some inputs about that: I'm trying to install OTIO into Blender 2.93's Python, which uses python 3.9.2. Tested on MacOS and windows. It doesn't work and I get this error:
While installing it into a locally installed Python 3.9.2 works. |
I must precise I don't get this issue any more. Then the problem to address seems to be on the build stage only and not at the |
@meshula I've tried OTIO with python 3.9 a couple of times on Windows and it was working from what I remember. As for the other platforms, I haven't seen any problem lately when building with Python 3.9.1+. |
Python headers will be included into Blender's build: https://developer.blender.org/D12228 |
That's nice to see! |
There currently exists a rare crash condition that can occur with the combination of python 3.9.0 and pybind11 (for context see this ASWF thread or this pybind11 issue.
The tl;dr: There could be unexpected and unpredictable crashing in Python 3.9.0, this issue is set to be addressed in 3.9.1. After 3.9.1 is released we should enable CI for 3.9 and consider adding 3.9 to the badge in the readme.
We may also consider updating the
python_requires
to exclude 3.9.0, though we'd want to make sure we can do this in a way that signals to users why this is and steps to remedy (use 3.9.1 instead).The text was updated successfully, but these errors were encountered: