How to update an old environment toolkit to use Python3?

Hi folks,

I’m trying to update my toolkit environment for Maya 2022+ and the new version of Shotgrid Desktop. I thought it was better to do a new configuration and just use the default to update with my integrations, but how do that? In the documentation there is an option on the Shotgrid Desktop to install a new config, but doesn’t show up for me.

When I select a project in Shotgrid Desktop with my current configuration, I get an error even using python2 environment variable:

Errno 8] _ssl.c:507: EOF occurred in violation of protocol

Traceback (most recent call last):
  File "C:\Program Files\Shotgun\Resources\Desktop\Python\bundle_cache\app_store\tk-desktop\v2.6.3\python\utils\bootstrap_utilities.py", line 232, in start_engine
    return manager.bootstrap_engine("tk-desktop", self._project)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\bootstrap\manager.py", line 490, in bootstrap_engine
    tk = self._bootstrap_sgtk(engine_name, entity)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\bootstrap\manager.py", line 1098, in _bootstrap_sgtk
    config = self._get_updated_configuration(entity, progress_callback)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\bootstrap\manager.py", line 1037, in _get_updated_configuration
    config = self._get_configuration(entity, progress_callback)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\bootstrap\manager.py", line 1011, in _get_configuration
    self._sg_user.login,
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\bootstrap\resolver.py", line 823, in resolve_shotgun_configuration
    self._PIPELINE_CONFIG_FIELDS,
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 848, in find_one
    additional_filter_presets=additional_filter_presets)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 969, in find
    additional_filter_presets)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 1038, in _construct_read_parameters
    params["paging"] = {"entities_per_page": self.config.records_per_page,
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 471, in records_per_page
    self._records_per_page = self._sg.server_info.get("api_max_entities_per_page") or 500
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 732, in server_info
    return self.server_caps.server_info
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 747, in server_caps
    self._server_caps = ServerCapabilities(self.config.server, self.info())
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 799, in info
    return self._call_rpc("info", None, include_auth_params=False)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\authentication\shotgun_wrapper.py", line 63, in _call_rpc
    return super(ShotgunWrapper, self)._call_rpc(*args, **kwargs)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 3334, in _call_rpc
    req_headers,
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 3488, in _make_call
    return self._http_request(verb, path, body, req_headers)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 3542, in _http_request
    resp, content = conn.request(url, method=verb, body=body, headers=headers)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\lib\httplib2\python2\__init__.py", line 1925, in request
    conn, authority, uri, request_uri, method, body, headers, redirections, cachekey,
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\lib\httplib2\python2\__init__.py", line 1634, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\lib\httplib2\python2\__init__.py", line 1553, in _conn_request
    conn.connect()
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\lib\httplib2\python2\__init__.py", line 1239, in connect
    self.key_password,
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\lib\httplib2\python2\__init__.py", line 104, in _ssl_wrap_socket
    sock, keyfile=key_file, certfile=cert_file, cert_reqs=cert_reqs, ca_certs=ca_certs, ssl_version=ssl_version,
  File "r:\shotgun\repository\apps\win\python\Python\lib\ssl.py", line 387, in wrap_socket
    ciphers=ciphers)
  File "r:\shotgun\repository\apps\win\python\Python\lib\ssl.py", line 143, in __init__
    self.do_handshake()
  File "r:\shotgun\repository\apps\win\python\Python\lib\ssl.py", line 305, in do_handshake
    self._sslobj.do_handshake()
SSLError: [Errno 8] _ssl.c:507: EOF occurred in violation of protocol

And when I change the configuration path to use another config:

2022-09-21 10:41:20,990 [    INFO] WebSocketServerFactory (TLS) starting on 9000
2022-09-21 10:41:20,993 [    INFO] Starting factory 
2022-09-21 10:41:35,729 [   ERROR] Error

[Errno 8] _ssl.c:507: EOF occurred in violation of protocol

Traceback (most recent call last):
  File "C:\Program Files\Shotgun\Resources\Desktop\Python\bundle_cache\app_store\tk-desktop\v2.6.3\python\utils\bootstrap_utilities.py", line 232, in start_engine
    return manager.bootstrap_engine("tk-desktop", self._project)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\bootstrap\manager.py", line 490, in bootstrap_engine
    tk = self._bootstrap_sgtk(engine_name, entity)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\bootstrap\manager.py", line 1098, in _bootstrap_sgtk
    config = self._get_updated_configuration(entity, progress_callback)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\bootstrap\manager.py", line 1037, in _get_updated_configuration
    config = self._get_configuration(entity, progress_callback)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\bootstrap\manager.py", line 1011, in _get_configuration
    self._sg_user.login,
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\bootstrap\resolver.py", line 823, in resolve_shotgun_configuration
    self._PIPELINE_CONFIG_FIELDS,
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 848, in find_one
    additional_filter_presets=additional_filter_presets)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 969, in find
    additional_filter_presets)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 1038, in _construct_read_parameters
    params["paging"] = {"entities_per_page": self.config.records_per_page,
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 471, in records_per_page
    self._records_per_page = self._sg.server_info.get("api_max_entities_per_page") or 500
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 732, in server_info
    return self.server_caps.server_info
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 747, in server_caps
    self._server_caps = ServerCapabilities(self.config.server, self.info())
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 799, in info
    return self._call_rpc("info", None, include_auth_params=False)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\authentication\shotgun_wrapper.py", line 63, in _call_rpc
    return super(ShotgunWrapper, self)._call_rpc(*args, **kwargs)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 3334, in _call_rpc
    req_headers,
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 3488, in _make_call
    return self._http_request(verb, path, body, req_headers)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\shotgun.py", line 3542, in _http_request
    resp, content = conn.request(url, method=verb, body=body, headers=headers)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\lib\httplib2\python2\__init__.py", line 1925, in request
    conn, authority, uri, request_uri, method, body, headers, redirections, cachekey,
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\lib\httplib2\python2\__init__.py", line 1634, in _request
    (response, content) = self._conn_request(conn, request_uri, method, body, headers)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\lib\httplib2\python2\__init__.py", line 1553, in _conn_request
    conn.connect()
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\lib\httplib2\python2\__init__.py", line 1239, in connect
    self.key_password,
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank_vendor\shotgun_api3\lib\httplib2\python2\__init__.py", line 104, in _ssl_wrap_socket
    sock, keyfile=key_file, certfile=cert_file, cert_reqs=cert_reqs, ca_certs=ca_certs, ssl_version=ssl_version,
  File "r:\shotgun\repository\apps\win\python\Python\lib\ssl.py", line 387, in wrap_socket
    ciphers=ciphers)
  File "r:\shotgun\repository\apps\win\python\Python\lib\ssl.py", line 143, in __init__
    self.do_handshake()
  File "r:\shotgun\repository\apps\win\python\Python\lib\ssl.py", line 305, in do_handshake
    self._sslobj.do_handshake()
SSLError: [Errno 8] _ssl.c:507: EOF occurred in violation of protocol

2022-09-21 10:51:33,671 [ WARNING] [PROXY] Your centralized pipeline configuration is missing the file R:\shotgun3\config\core\pipeline_configuration.yml. Pipeline configurations using the fields windows_path, mac_path or linux_path need to be created via the Toolkit project setup process.
2022-09-21 10:51:33,671 [ WARNING] [PROXY] Note: If you want to bootstrap toolkit directly from a configuration that is stored locally, use the PipelineConfiguration.descriptor field together with a path descriptor.
2022-09-21 10:51:33,674 [   ERROR] Error

Cannot find required system file 'config/core/pipeline_configuration.yml' in configuration R:\shotgun3.

Traceback (most recent call last):
  File "C:\Program Files\Shotgun\Resources\Desktop\Python\bundle_cache\app_store\tk-desktop\v2.6.3\python\utils\bootstrap_utilities.py", line 232, in start_engine
    return manager.bootstrap_engine("tk-desktop", self._project)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\bootstrap\manager.py", line 490, in bootstrap_engine
    tk = self._bootstrap_sgtk(engine_name, entity)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\bootstrap\manager.py", line 1098, in _bootstrap_sgtk
    config = self._get_updated_configuration(entity, progress_callback)
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\bootstrap\manager.py", line 1043, in _get_updated_configuration
    status = config.status()
  File "C:\Users\Roof\AppData\Roaming\Shotgun\roofstudio\site.basic.desktop\cfg\install\core\python\tank\bootstrap\installed_configuration.py", line 76, in status
    "in configuration %s." % config_path
TankBootstrapError: Cannot find required system file 'config/core/pipeline_configuration.yml' in configuration R:\shotgun3.

Does anybody know how to solve this?

Thank you.

I solved the first error by changing the python interpreter path. But I’m still getting the second error when trying to use a custom config path. We have a primary configuration path for each project, I think that’s the problem.