ynput / ayon-core

Apache License 2.0
18 stars 30 forks source link

Support Houdini 20.5+ with Py3.11 #625

Closed BigRoy closed 1 week ago

BigRoy commented 3 weeks ago

Changelog Description

This adds support for Houdini version with Py3.11 like Houdini 20.5.262 which is currently in beta available to all users on an active subscription starting today.

Additional info

Note that the trick for Houdini 20.0.xxx application environment where we prepended the Houdini Python libs to the environment seemed redundant for 20.5.xxx since I got no python library conflicts with AYON so it seemed. However, if you do find anything. You might need something like:

{
    "HOUDINI_VERSION": "20.5.262",
    "PYTHONPATH": [
        "C:/Program Files/Side Effects Software/Houdini {HOUDINI_VERSION}/python311/lib/site-packages",
        "{PYTHONPATH}"
    ]
}

More details on that Houdini 20 workaround here.

There are some other Py3.11 notes to consider, I'm getting e.g. these warnings:

On start:

C:\Users\User\AppData\Local\Ynput\AYON\dependency_packages\ayon_2403061937_windows.zip\dependencies\future\standard_library\__init__.py:65: DeprecationWarning: the imp module is deprecated in favour of importlib and slated for removal in Python 3.12; see the module's documentation for alternative uses
  import imp
<frozen importlib._bootstrap>:1047: ImportWarning: _SixMetaPathImporter.find_spec() not found; falling back to find_module()

In publisher UI:

E:\dev\ayon-core\client\ayon_core\tools\utils\lib.py:49: DeprecationWarning: QDesktopWidget.screenGeometry(int screen) const is deprecated
  screen_geo = desktop.screenGeometry(screen_idx)
E:\dev\ayon-core\client\ayon_core\plugins\publish\extract_review.py:1905: DeprecationWarning: invalid escape sequence '\g'
  string_value = re.sub(r"^([\+\-])[ ]+", "\g<1>", string_value)
E:\dev\ayon-core\server_addon\deadline\client\ayon_deadline\plugins\publish\submit_harmony_deadline.py:399: DeprecationWarning: invalid escape sequence '\.'
  '}1\.[a-zA-Z]{3}'

In Library Loader:

Using existing QApplication..
E:\dev\ayon-core\client\ayon_core\tools\common_models\cache.py:20: DeprecationWarning: Used 'NestedCacheItem' from deprecated location 'ayon_core.tools.common_models', use 'ayon_core.lib' instead.
  warnings.warn(
E:\dev\ayon-core\client\ayon_core\tools\common_models\cache.py:10: DeprecationWarning: Used 'CacheItem' from deprecated location 'ayon_core.tools.common_models', use 'ayon_core.lib' instead.
  warnings.warn(

(This isn't really Py3.11 or Houdini related I suppose)

Aside of that all the tools do seem to work completely fine.

Testing notes:

  1. Install Houdini 20.5.262
  2. Add the application to settings and your project
  3. Launch within AYON
  4. Everything should work in the integration
BigRoy commented 3 weeks ago

@iLLiCiTiT some of those deprecation warnings might be interesting for you to consider?

MustafaJafar commented 3 weeks ago

I don't have 20.5. can't test it. pepe-cry-meme-7

BigRoy commented 2 weeks ago

I don't have 20.5. can't test it.

Do we know anyone else capable of testing - maybe @krishna8008 ?

BigRoy commented 1 week ago

I'll close this PR and reopen it on separated ayon-houdini repo once the addon separation has finished.