Как перезапустить скомпилированный python EXE-файл сам? - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть программа python 3.7, которую я компилирую с помощью Pyinstaller. Моя программа должна начаться с установки Java environment, Node и других вещей. Он создает переменные среды, которые будут необходимы для его работы.

Проблема в том, что переменная среды эффективна после «перезапуска» программы. Например, моей программе удалось успешно скачайте и запустите установку node.js, которая необходима для установки Appium, с помощью команды npm:

npm install -g appium

Итак, node.js и npm .cmd установлены, но моя программа не запускается команда с именем npm .cmd отсутствует в этой папке. Он находится где-то еще, и я попытался запустить его с путем, чтобы избежать проблемы переменной среды:

command_install_npm = '"C:\\Program Files\\nodejs\\npm install -g appium"'

Но это кошмар из-за пробелов в пути. Она не распознается как внутренняя или внешняя команда.

Таким образом, команду npm можно запустить, если путь к npm .cmd указан в переменной среды. Мой скрипт добавил его, но он должен перезапустить себя, чтобы насладиться переменной окружения.

Поэтому я ищу по inte rnet, и я нашел эту команду:

os.execv('MyProgram.exe')

Но это дает мне сообщение об ошибке:

Type error : execv() takes exactly 2 arguments (1 given).

Мне не нужно передавать никаких аргументов. Я просто хочу перезапустить свою программу "Myprogram.exe".

Я прочитал do c, и мне кажется, что мне нужно передать второй аргумент, даже если он не требуется моей программой.

Кто-нибудь знает, как это сделать?

...