Как запустить сценарий python в виртуальной среде из программы на C ++ на Windows? - PullRequest
0 голосов
/ 01 августа 2020

Пока я использую двухэтапный подход и запускаю 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.

1 Ответ

0 голосов
/ 01 августа 2020
If you want to do it using standard C++, you can go for std::system()

std::system("command_to_run_with_space_separated_params_if_any");

If you want to use windows ways, you can go for followings...
  ShellExecuteEx()
  ShellExecute()
  CreateProcessA()
  CreateProcessW()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...