在PyInstaller中打包多个脚本

在PyInstaller中打包多个脚本,第1张

在PyInstaller中打包多个脚本

我不认为pyinstaller可以独自处理这种捆绑,至少我没有设法进行配置。我也有一个相当大的应用程序,其中有些调用

subprocess.Popen(’python’…)

完成。我最终使其工作的方式是:

  1. 将子流程调用修改为其他python,例如
    subprocess.call(['gksudo','./python script2.py'])
    。在您的情况下,请创建两个单独的分析,一个用于入口点,另一个用于其余脚本:

a1-对script1.py的分析a2-对script2.py的分析

  1. 仅从入口点脚本创建exe:

    pyz = PYZ(a1.pure)

    exe = EXE(pyz,
    a1.scripts,
    exclude_binaries=1,
    name={name here},
    debug=False,
    strip=False,
    upx=True,
    console=1 )


  2. 从所有脚本收集

        coll = COLLECT( exe,   a1.binaries,   a1.zipfiles,   a1.datas,   a2.binaries,   a2.zipfiles,   a2.datas,

    python_tree,
    *additional_trees,
    strip=False,
    upx=True,
    name={})

  3. 将python复制到所有子进程调用中指定的位置的发行版中,并安装pyinstaller找不到的任何其他要求(我有一些类似matplotlib,pylab等)

  4. 创建一个启动脚本,该脚本首先更改所有必需的环境变量以指向您的程序包,然后启动该应用程序。就我而言,需要的是从调用目录:

     export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH

    export LD_RUN_PATH=

    pwd
    :$LD_RUN_PATH

现在,如果我希望该应用程序在未安装python的计算机上运行,​​或者如果它们已安装python的计算机上运行,​​则所有这些都是必需的,请确保该应用程序仍使用分发包中的所有库而不是任何本地库。如果在您的情况下,python已经安装在目标计算机上,那么我认为不需要这样做,前三步就足够了。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5648682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存