Как запустить консоль windows 7 с недавно измененной системной средой - PullRequest
0 голосов
/ 28 апреля 2020

Я написал (очень простой) маленький Python сценарий, и я хочу иметь возможность распространять его среди друзей, которые не знают, что такое Python, и ничего о Windows cmd-сценариях. Итак, в основном мне нужно установить Python в их системах с последующей установкой необходимых библиотек для моего скрипта, затем моего скрипта (и соответствующих стартовых ссылок на их рабочем столе).

Меня не интересует в создании сложной программы установки. Итак, я написал очень простой, простой скрипт cmd для установки (и создал самораспаковывающийся архив, который запускает скрипт установки.)

В архиве у меня есть inte rnet - доступ к исполняемым файлам для установки Python. Сценарий проверяет существующую Python установку, и когда ничего не найдено, он устанавливает Python. это хорошо работает.

Но после установки Python мне нужно установить некоторые необходимые модули / библиотеки, которые не поставляются в комплекте с Python. Было бы неплохо иметь возможность использовать pip3 для установки этих библиотек. По сути, это то, что нужно запустить:

python-3.8.2-webinstall.exe  PrependPath=1
pip3 install --user requests python-dateutil pychromecast gtts

Проблема здесь в том, что после веб-установки Python процесс (консольный процесс), выполняющий этот сценарий , не наследует новые настройки (особенно параметры нового пути) из процесса веб-установки , и поэтому команда pip3 не выполняется.

Моя первая попытка исправить это состояла в том, чтобы использовать консольную команду START для запуска команды pip3. в отдельном процессе, который будет иметь новые настройки:

python-3.8.2-webinstall.exe  PrependPath=1
START "PythonRequireds" /I /wait cmd /C "pip3 install --user requests python-dateutil pychromecast gtts"

Из документации по команде START я бы ожидал, что параметр / I обеспечит запуск запущенного процесса в новой среде, включая изменения из только что завершенная веб-установка. Увы, этого не произошло: команда pip3 все еще не найдена.

Итак, мой вопрос: кто-нибудь знает, как запустить новый процесс из консольного сценария Windows, чтобы новый процесс имел все изменения пути, только что помещенные в реестр процессом установки?

...