Я написал (очень простой) маленький 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, чтобы новый процесс имел все изменения пути, только что помещенные в реестр процессом установки?