Добавить в корзинуПозвонить
Найти в Дзене

Как установить «Free-threaded» (многопоточную) версию Python

По умолчанию все ссылки на дистрибутивы Python выдаются на "обычные" версии, с включенным режимом "GIL" (Global Interpreter Lock). Чтобы установить «Free-threaded» версию, надо использовать "танцы с бубном". Про многопоточность в пайтоне читай тут: Но установка через "UV" (настоятельно советую всем разработчикам перейти именно на "UV"!) многопоточной версии пайтона проста до неприличия. Надо сначала запросить доступные версии пайтона, которые сейчас есть в наличии, выбрать нужную версию, посмотреть как пишется название имеющейся в наличии версии, и ее вставить в строку установки экземпляра пайтона: В нашем случае команда будет: Примечание: многопоточную версию можно в команде указать добавлением "t" сразу за номером версии: "3.13.3t" UV установит его в эту папку: VENV от этого пайтона создается (в текущей папке!) следующей командой: Повторяется та же строка, что и при установке
Если номер версии указать без минорной цифры ("1.13"), установится последняя из имеющихся 1.13.# Чтобы убед

По умолчанию все ссылки на дистрибутивы Python выдаются на "обычные" версии, с включенным режимом "GIL" (Global Interpreter Lock). Чтобы установить «Free-threaded» версию, надо использовать "танцы с бубном".

Про многопоточность в пайтоне читай тут:

Но установка через "UV" (настоятельно советую всем разработчикам перейти именно на "UV"!) многопоточной версии пайтона проста до неприличия. Надо сначала запросить доступные версии пайтона, которые сейчас есть в наличии, выбрать нужную версию, посмотреть как пишется название имеющейся в наличии версии, и ее вставить в строку установки экземпляра пайтона:

  • uv python list - выдаст имеющихся версий python
  • uv python install #.##.#+freethreaded - установит именно многопоточную

В нашем случае команда будет:

  • uv python install 3.13.3+freethreaded - многопоточная
  • uv python install 3.13.3 - однопоточная
Примечание: многопоточную версию можно в команде указать добавлением "t" сразу за номером версии: "3.13.3t"
Пример выполнения установки «Free-threaded» версии Python
Пример выполнения установки «Free-threaded» версии Python

UV установит его в эту папку:

-2

VENV от этого пайтона создается (в текущей папке!) следующей командой:

  • uv venv --python 3.13.3+freethreaded
Повторяется та же строка, что и при установке
Если номер версии указать без минорной цифры ("1.13"), установится последняя из имеющихся 1.13.#

Чтобы убедиться, что VENV создан именно на «Free-threaded» версию, откроем файл "pyvenv.cfg" в только что созданном ".venv":

-3

Первая его строка укажет на папку, которая является "родителем" для этого ".venv":

"Родительская" папка пайтона "freethreaded" версии
"Родительская" папка пайтона "freethreaded" версии

Теперь у вас есть "VENV" с пайтоном многопоточной системы.

Установка той же версии пайтона, но с включенным "GIL" (обычная) производится просто указанием номера версии без конкатенции к номеру версии "+freethreaded".

  • 1 - "freethreaded" версия
  • 2 - обычная версия
-5

Проверим файл "pyvenv.cfg" из VENV, созданного второй командой:

"Родительская" папка пайтона обычной версии
"Родительская" папка пайтона обычной версии

Для справки:

«Free-threaded» версия Python — это экспериментальная реализация Python, в которой удален Global Interpreter Lock (GIL), что позволяет потокам выполняться полноценно параллельно на многоядерных процессорах. Это кардинально отличается от классического Python, где GIL ограничивает выполнение потоков в CPU-bound задачах (т.е. при активных вычислениях).

НЕ ВКЛЮЧАЙТЕ ПУТЬ К ПАЙТОНУ В "PATH"!
Это предотвратит его случайный вызов!
Используйте пока только для экспериментов с кодом!

Многопоточное программирование имеет совершенно другую идеологию, идеологию "событий" (event loop) и "объектов", которую я разберу в будущей статье.

В Windows-дистрибутиве отметьте именно многопоточную версию.

-7

Удачи!

Обложка статьи
Обложка статьи