We released Deadline 10.3.0.9, on August 4, 2023, that includes support for Python 3.10 and no longer includes support for Python 2 and Python 3.7. Any Deadline events plugins,scripts, or application plugins that require anything older than Python 3.10 will not work in Deadline 10.3.x.x. Additional information is available in the Python 3 Upgrade Guide
You will need to upgrade the Repository and Client to the same version (10.3) or the plugin initialization will fail with errors such as below:
2023-08-04 13:06:11: 0: INFO: Executing plugin script 'C:\ProgramData\Thinkbox\Deadline10\workers\<Workername>\plugins\64a48a4a797e59788cc60540\MayaBatch.py' 2023-08-04 13:06:11: 0: INFO: Plugin execution sandbox using Python version 3 2023-08-04 13:06:11: 0: Encountered an error while executing plugin command of type 'Initialize Plugin' 2023-08-04 13:06:11: 0: Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object. 2023-08-04 13:06:14: Exception Details 2023-08-04 13:06:14: RenderPluginException -- The Deadline Plugin was not properly initialized. Application plugins must explicitly call `super().__init__()` in the Python constructor: `def __init__()`. 2023-08-04 13:06:14: RenderPluginException -- The Deadline Plugin was not properly initialized. Application plugins must explicitly call `super().__init__()` in the Python constructor: `def __init__()`. 2023-08-04 13:06:14: RenderPluginException.Cause: JobError (2) 2023-08-04 13:06:14: RenderPluginException.Level: Major (1) 2023-08-04 13:06:14: RenderPluginException.HasSlaveLog: True
To upgrade your custom plugins, scripts, or events you need to make some changes. A screenshot of the diff of two versions of a Cinema 4D Batch plugin shows the changes you will need to make to your script is below:
(Left is Python 3.10 updated plugin for Cinema 4D Batch).
For this plugin the changes below were required:
1. Importing the sys module: You will need to import sys module if it is not imported already
import sys
2. Changes inside the Plugin Class>> Constructor Method :
class Cinema4DBatchPlugin( DeadlinePlugin ):
MyCinema4DController = None
def __init__(self):
if sys.version_info.major == 3:
super().__init__()
3. Changes inside the Plugin Managed Process>> Constructor Method:
class Cinema4DProcess( ManagedProcess ):
Cinema4DController = None
def __init__( self, cinema4DController ):
super().__init__()
Comments
0 comments
Please sign in to leave a comment.