Я пишу скрипт python, который проверяет, доступна ли новая версия, он удаляет себя, копирует новую версию и перезапускается с теми же аргументами.
Код работает на MacOs (Linux):
def main(args):
if _version.__version__ == '1.0.3':
os.remove(sys.argv[0])
shutil.copytree('/Users/john/Projects/utils/newcode/updatest/', str(script_dir), dirs_exist_ok=True)
print('Updating ...')
args.insert(0, sys.executable)
os.chdir(_startup_cwd)
print('Rerunning ...')
os.execv(sys.executable, args)
if __name__ == "__main__":
print('This is a new code!')
main(sys.argv)
В винде вроде тоже работает, но зависает в cmd пока не нажмешь Enter. Я также пытался использовать Popen
, и он ведет себя так же в Windows.
Как правильно это сделать в Windows?