使用Inno安装程序安装Python
我正在使用Inno setup从C#程序成功创建一个安装程序。要运行这个程序,我需要Python。直到今天,我还要求我的客户手动安装Python,因为有些客户并不总是遵循我的安装指南,所以我经常收到他们的问题。现在,我想简化安装,使一切都自动完成。我需要设置:使用Inno安装程序安装Python,python,inno-setup,Python,Inno Setup,我正在使用Inno setup从C#程序成功创建一个安装程序。要运行这个程序,我需要Python。直到今天,我还要求我的客户手动安装Python,因为有些客户并不总是遵循我的安装指南,所以我经常收到他们的问题。现在,我想简化安装,使一切都自动完成。我需要设置: Python的安装路径:C:\Python\Python3.5.2 适用于所有用户的安装 为Python设置全局环境变量C:\Python\Python3.5.2 如果所有这些都已存在,则无需安装 我试着用这段代码来做这件事,但没有成功。
C:\Python\Python3.5.2
C:\Python\Python3.5.2
[运行]
文件名:“{app}\deploy\python-3.5.2.exe”\
参数:“/i”C:\Python\Python-3.5.2”“/qb!ALLUSER=1 ADDLOCAL=ALL”\
WorkingDir:“{app}\deploy”;标志:32位;检查:python_是否已安装
[守则]
函数python_is_installed():Boolean;
变量
键:字符串;
开始
{检查注册表}
键:=“software\Python\Python-3.5.2\InstallPath”;
结果:=不存在RegValueExists(HKEY_LOCAL_机器,键“”);
结束;
我做错了什么
溴
Stefan您似乎使用了完全错误的命令行参数(对于Windows Installer?) 有关Python Windows安装程序的正确命令行参数,请参阅Python文档:
你可能想要这样的东西:
/passive installUsers=1 TargetDir=C:\Python\Python3.5.2 PrependPath=1
另一个问题是代码部分中的安装检查未按预期工作RegValueExists()
始终返回值名为空的false。这意味着您的check函数总是返回false,即使密钥存在。这就是为什么Python安装总是运行的原因,即使已经安装了Python
要检查是否存在键,而不是值,请使用函数RegKeyExists()
请参见注册表值存在(根,键“”)检查键中是否存在默认值。我没有安装特定的Python版本。但是检查我安装的版本,它们的InstallPath
子键中确实有默认值。所以OP的代码很可能在这方面起作用。否则,就测试Python安装而言,您的代码似乎更好。但我仍然相信你没有回答OP的问题。考虑启动一个关于检测Python安装的新问题,并自行回答。到时候我很乐意为你的帖子投票。