繁体   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