Пока я использую двухэтапный подход и запускаю cmd.exe
, а не python.exe
. Но мне не нравится cmd.exe
между деревом процессов по нескольким причинам (например, я не получаю дескриптор или идентификатор процесса python, а только cmd.exe
).
string sCmd =
"cmd.exe /C venv\\SomeEnv\\Scripts\\activate.bat && python.exe Subprograms\\my_script.py";
CreateProcessA(nullptr,
sCmd.data(),
...);
Я считаю, что для активации виртуальной среды мне нужно поместить ее в начало переменной среды PATH
и установить некоторые другие переменные, такие как PYTHONHOME
и PYTHONPATH
, но я не уверен, достаточно ли этого и какие значения установить там на Windows.