Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在安装程序中嵌入python_Python_Installation_Inno Setup - Fatal编程技术网

在安装程序中嵌入python

在安装程序中嵌入python,python,installation,inno-setup,Python,Installation,Inno Setup,这个问题的公认答案讨论了在安装程序中“嵌入Python”以将其部署为Exe 我希望采用这种方法来部署python应用程序,而不是使用Py2exe之类的东西。当我尝试在谷歌上搜索“嵌入python”时,答案似乎都是关于将python嵌入C代码。有人能给我指一下关于嵌入安装包的教程吗?使用inno setup,我知道你可以在*.iss文件中这样做 [Files] Source: "python_installer.exe"; DestDir: "{tmp}"; Flags: deleteafteri

这个问题的公认答案讨论了在安装程序中“嵌入Python”以将其部署为Exe


我希望采用这种方法来部署python应用程序,而不是使用Py2exe之类的东西。当我尝试在谷歌上搜索“嵌入python”时,答案似乎都是关于将python嵌入C代码。有人能给我指一下关于嵌入安装包的教程吗?

使用inno setup,我知道你可以在*.iss文件中这样做

[Files]
Source: "python_installer.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall

[Run]
Filename: "{tmp}\python_installer.exe"; Check: pythonCheck


function pythonCheck(): Boolean;
begin
  Result := SOME_CONDITION_DO_WE_NEED_TO_INSTALL;
end;

(请注意,inno安装iss文件是pascal…

所以您希望安装程序在安装过程中安装python,然后用户只需要python?你用什么来构建安装程序?@JoranBeasley,或者像我链接到的问题提到的那样,将它作为库包含在安装程序中。不确定是否有区别/哪一个更容易如果您只想在pyinstaller上创建一个exe,那么您可以使用
c:\pyinstaller\pyinstaller.py--onefile my_main_script.py
构建一个可分发的exe,但是如果您想让通用python在主机上可用,而主机并没有这样做(它包括一个python安装的解释器,只有在运行程序exe时才会运行)公认的答案是在应用程序中嵌入python(将其用作库)(不是在安装程序中——这没有意义)答案明确地说,其他方法通常更强大、更健壮。您可以使用cx_Freeze、PyInstaller等为Python应用程序创建一个独立的发行版(包括Python二进制文件本身所需的所有文件),例如,它可以是一个可直接在您的平台上运行的单个文件(无需外部Python安装)或者使用Inno Setup打包生成的文件。@J.F.Sebastian:谢谢,现在这很有意义,PyInstaller就是我要找的。你想让我接受这个答案吗?我对整个创建安装非常陌生,所以我甚至没有考虑使用什么来创建安装程序。但是Inno看起来很有趣,让我来调查一下……Jor此外,您不需要担心多个
Check
函数求值。在Check函数中,您永远不应该执行任何耗费时间或资源的操作,因此让它求值几次并不是问题。使用pyinstaller之类的工具可以消除安装程序的所有麻烦。。。(尽管它不会在主机上安装python)@TLama谢谢你的提醒