【问题标题】:wxPython to exe with PyInstaller?wxPython 与 PyInstaller 一起执行?
【发布时间】:2023-03-24 13:49:02
【问题描述】:

我正在尝试让 wxPython 应用程序作为 exe 运行。我听说 PyInstaller 现在优于 py2exe。我想包含脚本运行所需的 .ico 和两个 .png 文件。这个规范文件会是什么样子?我似乎在任何地方都找不到像样的例子。我安装了 PyInstaller,但在任何地方都找不到这个“makespec”。

【问题讨论】:

    标签: python wxpython exe pyinstaller


    【解决方案1】:

    在我的 PyInstaller 项目中,我通常只需对 see if the app's frozen 进行运行时检查并相应地调整位图的路径。所以像这样处理 PyInstaller 和常规 Python 应用程序:

    def app_path():
        """Returns the base application path."""
        if hasattr(sys, 'frozen'):
            # Handles PyInstaller
            return os.path.dirname(sys.executable)
        return os.path.dirname(__file__)
    

    【讨论】:

    • 但是规范会是什么样子?
    • @tkbx 如果你这样做,它不会发挥作用 - 你只是告诉 Python 在哪里可以自己找到位图。所以你只需添加例如构建后将您的图标文件夹复制到 PyInstaller dist 文件夹。
    • .exe 在它的 (dist) 目录中查找这些文件?该文件夹是否必须安装在系统的某个位置?
    • 对,icons文件夹会放在dist文件夹下,安装到系统上。
    【解决方案2】:

    检查sys.frozen 是一个非常好的方法。您还可以查看img2py,它可以让您将图像的二进制数据加载到 .py 文件中。之后,不必打开文件,而是可以导入它们。

    【讨论】:

      【解决方案3】:
      a = Analysis(['script.py'],
                   pathex=['D:\\source-control\\GITHUB\\projectname'],
                   hiddenimports=[],
                   hookspath=None,)
      
      a.datas += [( 'images', r'C:\Users\igorl\Pictures\hzgJUXi5l4o.jpg', 'DATA')]
      
      pyz = PYZ(a.pure)
      exe = EXE(pyz,
                a.scripts,
                a.binaries,
                a.zipfiles,
                a.datas,
                name=os.path.join('dist', 'script.exe'),
                debug=False,
                strip=None,
                upx=True,
                console=False )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-22
        • 2019-08-06
        • 2013-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-21
        相关资源
        最近更新 更多