distutils 和 setuptools 线程安全吗?

问题描述

有人知道我是否可以安全地使用线程同时编译多个扩展吗?

我意识到这可能不会加快速度(尽管编译器在子进程中运行,所以也许吧!),但我处于这样一种情况,即 GUI 操作可以启动可能涉及编译步骤的模拟,所以我想知道我是否需要防止同时编译多个模拟,或者这是否可以

解决方法

它们不仅不是线程安全的——它们也不是进程安全的:你不能在一个进程中多次调用 setup()See an example 的错误。

要解决此限制,您必须在子进程中运行 python setup.pypip,然后线程安全问题不再适用。