IMPORTANT NOTICE: Upcoming removal of Python 2.7 and 3.7 interpreter in ShotGrid Desktop

Hi everyone,

Wanted to share an update for our plans regarding Python 3.9 support in ShotGrid Desktop. By Updated Date: Jan. 26, 2023, ShotGrid Desktop will ONLY support Python 3.9 , and stop shipping a working copy of the Python 2.7 and Python 3.7 interpreter.

Why is this being done?

We are removing Python 2 for security purposes, to ensure that ShotGrid Desktop is always running on the most secure version of Python recommended by the VFX Reference Platform .

What if I want to keep using an older copy of ShotGrid Desktop?

Clients still running old SG Desktop using Python 2.7, things should still work, but we do not support it so if there are any issues we will not fix them. Clients using new SG Desktop, only Python 3 will work since only Python 3.9 will be included

If you want to download older versions of ShotGrid Desktop that still support Python 2.7 and 3.7, you can grab versions 1.6.1 to 1.7.x here.

I’m ready to leave Python 2 behind, how do I do it?

If you’re using the basic integration, you’re good to go. All our tools are Python 2/3 compliant, so installing a new ShotGrid Desktop that only bundles Python 3 will not be an issue. Note that this change only impacts the ShotGrid Desktop experience. All your DCCs that do not ship with a Python 3.9 interpreter can still be launched from ShotGrid Desktop.

If you’ve customized your ShotGrid projects integrations i.e. using an advanced integration and you are relying on Desktop’s built-in Python interpreter; you may have to make changes before you install the new version. You’ll need to make sure that any application that runs in the tk-desktop engine, either at the project or site level, is compatible with Python 3.9.

Don’t hesitate to reach out to us if you have any questions, here or through support.

The ShotGrid Ecosystem Team

4 Likes

Hi all, I’m checking on the timeline of this! Is the above still the latest?

Thanks!
Den

Considering tk-desktop-framework was recently updated with depreciation notices for Python 2.7 I would assume this is still the plan.

Do you have a particular question about this?

Wanted to update everyone to let you know the ShotGrid team has extended the time before the deprecation of Python 2.x in ShotGrid Desktop from Nov. 1, 2022 to the new date…

Jan. 26, 2023

Between now and then, you will see a banner in the ShotGrid Desktop UI reminding you of this deprecation on Jan. 26, 2023, so please be sure to update your version of Python to 3.9 before this time.

1 Like

Warren, did this release happen? I just installed the latest SG Desktop and it includes Python 3.7.11

Hi @scottballard -

The team is still rolling this out and we’ll complete this work sometime next week. I’ll be sure to let you know when this work is complete. Thanks for your patience as well complete this work.

Warren

4 Likes

Hi Warren and co.

Assuming this is still being QA-ed since there’s still no new SG Desktop release? Just want to be sure we’re on top of the latest developments.

Yes, this is still being QA’d. As soon as it’s ready for release, I’ll be sure to let everyone know here.

Thanks for your patience

1 Like

Would we need to modify the interpreter_<OS>.cfg files in centralized toolkit configs?

1 Like

Wanted to let everyone know our team delayed the release of the latest version of ShotGrid Desktop which DOES NOT SUPPORT Python 2.x. This is was released today, Thu. Jan. 26, as ShotGrid Desktop v1.8.

To prevent any direct damage to a user’s working environment, users with a version of ShotGrid Desktop earlier than v1.8 and using Python 2.x will not receive any update of configs.

This means these users will be “locked” in old configs, so we encourage you to update to Python 3.9 and ShotGrid Desktop 1.8 as soon as possible.

If you find you’re experiencing any issues, please contact our support team.

1 Like

@scottballard and @kporangehat - The new ShotGrid Desktop v1.8 has been released. Wanted to make sure you knew. Details above ^^

3 Likes

Hello Community,

I would like to add that with this there will no longer be bug fixes made that only happen using Python 2.7.x. We do realize that some projects might be in-flight and can’t migrate until they are completed so we would like to advise you that you can fork a repository to make your fixes until you are able to migrate to Python 3.x.

I have put together this simple example how-to here:

showing that I can override tk-multi-shotgunpanel in my configuration to point at my fork of the repository where I maintain fixes I may need to stay on Python 2.7.x

Thank you!

3 Likes

Hello @mmoshev ,
You should verify those files to ensure they are pointing at Python3 executables as there will no longer be a Python2 executable included once v1.8.0 is deployed across the studio.

If you were already using v1.7.x of SG Desktop with Python3, the default install location is the same. C:\Program Files\Shotgun\Python3\python.exe on Windows as an example.

Please let us know if this answers your question?
Thanks!

1 Like

Yes it does, we have already pointed them to Python3, was just wondering if its path would change.
Thanks

1 Like

On MacOS, in interpreter_Darwin.cgf , I had to change from :

/Applications/Shotgun.app/Contents/Frameworks/Python/bin/python

to :

/Applications/Shotgun.app/Contents/Resources/Python3/bin/python

Is it normal that the ‘Frameworks’ subfolder changed to ‘Resources’ ?

1 Like

Hello @donat ,

Thanks for reporting this and we have investigated that the Frameworks path has actually been a symbolic link that has existed for many releases of SG Desktop. Now that we have removed Python 2.7.x resolving that link has broken and we will remove the symbolic link in a future release.

Thanks again for calling it out, have a good day!

3 Likes

Hello,

we are seeing a bunch of clients running into broken toolkit menu’s which may be related to the
recent updates?

Whenever we try to load any of the Toolkit right click menu’s in SG we are now greeted with looping errors like below.

I have been able to confirm this on various Windows and Mac OS machines either inside or outside production secured networks.
SG Desktop v1.7.3 / Py3.7 and v1.8.0 / Py3.9.

Submitted a ticket under #20190963

Anyone else running into this all of a sudden?

2023-03-01 13:13:36,639 [40488 ERROR sgtk.env.site.tk-desktop.tk-framework-desktopserver.tkimpfc399c898dfc4bd5ad0b68c53d9002aa.tk_framework_desktopserver.server_protocol] Unexpected error while losing connection.
Traceback (most recent call last):
  File "C:\Program Files\Shotgun\Resources\Desktop\Python\bundle_cache\app_store\tk-framework-desktopserver\v1.6.0\python\tk_framework_desktopserver\server_protocol.py", line 94, in connectionLost
    and reason.value.message[0][2] == "ssl handshake failure"
AttributeError: 'Error' object has no attribute 'message'
2023-03-01 13:13:41,015 [40488 WARNING sgtk.env.site.tk-desktop.tk-framework-desktopserver.twisted] dropping connection to peer tcp4:127.0.0.1:63268 with abort=True: WebSocket opening handshake timeout (peer did not finish the opening handshake in time)
2023-03-01 13:13:41,016 [40488 CRITICAL sgtk.env.site.tk-desktop.tk-framework-desktopserver.twisted] Unhandled Error
Traceback (most recent call last):
  File "C:\Program Files\Shotgun\Python3\lib\threading.py", line 917, in run
    self._target(*self._args, **self._kwargs)
  File "C:\Program Files\Shotgun\Resources\Desktop\Python\bundle_cache\app_store\tk-framework-desktopserver\v1.6.0\python\tk_framework_desktopserver\server.py", line 187, in start
    reactor.run(installSignalHandlers=0)
  File "C:\Program Files\Shotgun\Resources\Desktop\Python\bundle_cache\app_store\tk-framework-desktopserver\v1.6.0\resources\python\src\3.9\twisted\internet\base.py", line 1318, in run
    self.mainLoop()
  File "C:\Program Files\Shotgun\Resources\Desktop\Python\bundle_cache\app_store\tk-framework-desktopserver\v1.6.0\resources\python\src\3.9\twisted\internet\base.py", line 1328, in mainLoop
    reactorBaseSelf.runUntilCurrent()
--- <exception caught here> ---
  File "C:\Program Files\Shotgun\Resources\Desktop\Python\bundle_cache\app_store\tk-framework-desktopserver\v1.6.0\resources\python\src\3.9\twisted\internet\base.py", line 994, in runUntilCurrent
    call.func(*call.args, **call.kw)
  File "C:\Program Files\Shotgun\Resources\Desktop\Python\bundle_cache\app_store\tk-framework-desktopserver\v1.6.0\resources\python\src\3.9\txaio\_common.py", line 136, in _notify_bucket
    notify_one_chunk(calls, self._chunk_size, max(0.0, delay_ms))
  File "C:\Program Files\Shotgun\Resources\Desktop\Python\bundle_cache\app_store\tk-framework-desktopserver\v1.6.0\resources\python\src\3.9\txaio\_common.py", line 130, in notify_one_chunk
    raise RuntimeError(msg)
builtins.RuntimeError: Error(s) processing call_later bucket:
'NoneType' object has no attribute 'shutdown'

Hello @Ricardo_Musch, I saw that this issue is being handled on the 20190963 ticked you submitted. Feel free to share more details there that can help with this investigation.