Многопроцессорная обработка Python в Windows, кажется, выходит из строя - PullRequest
1 голос
/ 23 октября 2019

Я создаю приложение python3 для окон, которое опирается на wheel entry_points, потому что это простой способ получить исполняемые файлы .exe. Я использую venv (встроенный модуль виртуальной среды в python3). Я пытался найти другую точку входа excutalbe относительно моей собственной sys.prefix. Это шло хорошо, пока я не переместил код в многопроцессорную обработку. Процесс для достижения параллелизма. Тогда я больше не мог найти свою точку входа. Оказывается, процесс mp.Process не создается интерпретатором venv. Вот код для воспроизведения проблемы:

import multiprocessing, sys

def run():
    print("worker exe:",sys.executable)

if __name__ == '__main__':
    print("main exe:",sys.executable)
    multiprocessing.Process(target=run).start()

Вывод, который я получаю из этого: (в Windows 10)

main exe: C:\venv\Scripts\python.exe
worker exe: C:\Users\simon\AppData\Local\Programs\Python\Python37\python.exe

Таким образом, похоже, что многопроцессорный модуль выходит извиртуальная среда! Как я могу заставить процесс работать с переводчиком venv? Я попытался установить multiprocessing.set_executable без какой-либо удачи. Может ли это быть ошибкой в ​​многопроцессорном модуле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...