Python 3.14+concurrent.interpretersисключение
concurrent.interpreters.NotShareableError
исключения
Объект нельзя отправить в другой интерпретатор: он не поддерживает cross-interpreter data (Python 3.14+); подкласс TypeError.
Синтаксис
raise concurrent.interpreters.NotShareableError
Главная ловушка — класс наследуется от TypeError, поэтому общий except TypeError вокруг передачи данных проглотит его молча, и вы будете искать ошибку в аргументах. Круг разделяемых объектов узкий: простые неизменяемые значения проходят, а списки, словари и свои классы — нет; проверяйте is_shareable() заранее или передавайте данные в сериализованном виде, например JSON-строкой.
Примеры
from concurrent import interpreters # Python 3.14+
print(issubclass(interpreters.NotShareableError, TypeError)) # → True
print(interpreters.is_shareable(42)) # → True
print(interpreters.is_shareable([1, 2, 3])) # → False
interp = interpreters.create()
try:
interp.prepare_main(data=object()) # object() не переносится между интерпретаторами
except interpreters.NotShareableError as e:
print(type(e).__name__) # → NotShareableError
interp.prepare_main(n=42) # число — переносится
interp.close()
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности