Решил переписывать batch скрипт на python.
Язык мне этот нравится, некоторый опыт на нём я уже имею, интерпретатор весит мало, а сверхвысокая производительность не нужна.
Изначально я скачал только 32 битный python с расчётом на то, что такая разрядность будет универсальнее, так как сможет запускаться как на 32, так и на 64 битном оборудовании / установщике.
Но при запуске я получил ошибку, который в первый раз увидел:
"
Не удалось запустить приложение, поскольку его параллельная конфигурация неправильна".("
The application has failed to start because its side-by-side configuration is incorrect")Прочитал информацию по этой ошибке и подумал, что дело в отсутствующих зависимостях.
В документации на python написано, что "
The embedded distribution does not include the Microsoft C Runtime and it is the responsibility of the application installer to provide this", поэтому я подумал, что легко не будет.Поэтому начал искать способ разрешить эти зависимости.
Скачал vc redist и искал способы как-то распаковать все нужные мне DLL библиотеки без их установки.
Открыть как архив в 7zip ничего полезного не дало.
Вспомнил про msiexec, но установочный файл формата exe.
В документации на vc redist нашёл аргумент командной строки layout, который "
The /layout option copies the complete contents of the Redistributable in the current directory", но почему-то после запуска ничего не появилось ни в текущей рабочей папке, ни в папке temp.Позже на форуме microsoft я нашёл тему с похожей проблемой.
В итоге при помощи google и какой-то древнего форума нашёл программу UniExtract2, которая умеет распаковывать различные форматы архивов и установщиков microsoft, и это помогло достать все нужные DLL.
Но прежде чем их подкидывать в папку python, я решил попробовать скачать ещё 64 битную версию и попробовать ещё раз.
И о чудо, в этот раз интерпретатор python смог запуститься в среде winPE и потом даже корректно выполнить скрипт!
Я, конечно, такого не ожидал.
Как мне казалось, это не какая-то простая программа, не самодостаточная, и не без внешних зависимостей.
Поэтому обязательно должно что-то пойти не так, ведь я использую программу в тех условиях, в которых разработчики, наверное, и не предполагали.
Но почему-то на 64 битном оборудовании и на такой же разрядности установщике 32 битная программа не запустилась.
Возможно, дело просто в отсутствии или по умолчанию выключенной подсистеме WoW64 в winPE.
В итоге распакованный vc redist не пригодился, но на всякий случай я его сохраню, да и опыт оказался очень интересным и полезным.
ссылка на канал | ссылка на группу

