簡體   English   中英

使用 Inno Setup 安裝 Python

[英]Install Python with Inno Setup

我正在使用 Inno Setup 從 C# 程序成功創建設置。 要運行這個程序,我需要 Python。 直到今天,我要求我的客戶手動安裝 Python,因為有些客戶並不總是遵循我的安裝指南,我經常收到他們的問題。 現在我想簡化安裝,讓一切都自動完成。 我需要設置:

  1. Python的安裝路徑: C:\\Python\\Python3.5.2
  2. 為所有用戶安裝
  3. 為 Python C:\\Python\\Python3.5.2設置全局環境變量
  4. 如果所有這些已經存在,則無需安裝

我試圖用這段代碼來做到這一點,但我沒有成功。 不幸的是,正常的 Python 安裝正在開始。

[Run]
Filename: "{app}\deploy\python-3.5.2.exe"; \
    Parameters: "/i ""C:\Python\Python-3.5.2"" /qb! ALLUSER=1 ADDLOCAL=ALL"; \
    WorkingDir: "{app}\deploy"; Flags: 32bit; Check: python_is_installed

[Code]

function python_is_installed() : Boolean;
var
  key : string;
begin
   { check registry }
   key := 'software\Python\Python-3.5.2\InstallPath';
   Result := not RegValueExists(HKEY_LOCAL_MACHINE, Key, '');  
end;

我做錯了什么?

BR斯蒂芬

您似乎使用了完全錯誤的命令行參數發送(對於 Windows 安裝程序?)。

有關 Python Windows 安裝程序的正確命令行參數,請參閱 Python 文檔:
https://docs.python.org/3/using/windows.html


你可能想要這樣的東西:

/passive InstallAllUsers=1 TargetDir=C:\Python\Python3.5.2 PrependPath=1

另一個問題是代碼部分中的安裝檢查沒有按預期工作。 RegValueExists()總是以空值名稱返回 false。 這意味着即使鍵存在,您的檢查函數也始終返回 false。 這就是為什么 Python 安裝總是運行的原因,即使 Python 已經安裝。

要檢查鍵是否存在,而不是值,請使用函數RegKeyExists()

請參閱如何檢查 Inno Setup 中是否安裝了特定的 Python 版本?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM