Загрузите и установите exe-файл с помощью Python

#python #python-3.x #urllib

#python #python-3.x #urllib

Вопрос:

Я хочу создать программу автоматического обновления для своего проекта, которая загружает и устанавливает файл из Интернета. Я сделал, как я могу загрузить файл в нужное мне место с нужным именем. Место, где я застрял, — это то, как я могу установить файл.

Код, который я написал до сих пор:

 from urllib.request import urlretrieve
import getpass

url = 'https://sourceforge.net/projects/artigence/files/latest/download'

print('File Downloading')

usrname = getpass.getuser()
destination = f'C:\Users\{usrname}\Downloads\download.exe'

download = urlretrieve(url, destination)

print('File downloaded')
  

И файл будет загружен в папку «Мои загрузки». Теперь, как я могу установить EXE-файл с помощью python?

Комментарии:

1. Вы можете использовать pyautogui для управления приложением. Взгляните на это

Ответ №1:

Вам нужно будет использовать subprocess модуль для выполнения .exe файлов.

 import subprocess

cmd = "{download location} batch.exe"

returned_value = subprocess.call(cmd, shell=True)  # returns the exit code in unix
print('returned value:', returned_value)
  

см .

Я настоятельно рекомендую не использовать pyautogui для этого.

Комментарии:

1. «установка .exe»… как установить приложение с помощью os ?

2. .exe по сути, это отдельная команда, поэтому достаточно вызвать ее с помощью сценария оболочки или файла bat, или, в этом случае, выполнить команду в одну строку для вызова файла

3. Если это an installer.exe , то не потребуется ли нам выбирать параметры при установке like install location и многочисленные next кнопки? Как это сделать с os помощью?

4. Вы можете проверить установщик в Интернете и надеяться найти некоторые аргументы, которые позволят вам пропустить его, но если это мастер установки, у вас не будет другого выбора pyautogui . Однако это может привести к путанице pyautogui , поскольку оно зависит от координат экрана (x, y), поэтому вы можете столкнуться с множеством проблем с нежелательной совместимостью.

5. Да, именно по этой причине я рекомендовал pyautogui , чтобы он работал во всех случаях :-). Грязный, да, но все же надежный 🙂