У меня есть программа 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, и мне кажется, что мне нужно передать второй аргумент, даже если он не требуется моей программой.
Кто-нибудь знает, как это сделать?