Import _opentime before actually creating the bindings for _otio #1396
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I noticed that doing
python -c 'import opentimelineio._otio'
was not working. It was resulting in an import error:This error doesn't normally happen because we usually go through
opentimelineio/__init__.py
which imports_opentime
before importing_otio
.After some searching, I found https://pybind11.readthedocs.io/en/stable/advanced/misc.html#partitioning-code-over-multiple-extension-modules which describes some options to fix this. This PR implements the simplest option out there, which is to import
_opentime
before actually creating the_otio
bindings.This should be harmless because it is going to be a no-op when importing OTIO normally (via
import opentimelineio
). It will be a no-op in this case bacause Python doesn't re-import a package if imported twice.