【问题标题】:Create a single-file executable using py2exe使用 py2exe 创建单文件可执行文件
【发布时间】:2015-12-26 20:46:57
【问题描述】:

我编写了一个 python 代码,它使用 Tkinter 显示一个窗口。 它还调用同一文件夹中存在的另一个 python 文件。 我使用 py2exe 将 .py 文件转换为 .exe 文件。但我面临以下问题:

  1. 输出(在 dist 文件夹中)是一组文件,而不是单个可执行文件。

    • 根据我使用'bundle_files':1,'compressed':True 的理解,我应该得到一个文件。
    • 现在我有两个 .exe 文件和 1 个文件夹:w9xpopen.exe,myframe.py(这是我的文件)和文件夹“tcl
  2. 图标没有改变。

    • 我在“windows”部分提到了"icon_resources":[(0,"icon.ico")]

下面是我使用的setup.py

from distutils.core import setup
import py2exe, glob,sys,os

sys.argv.append('py2exe')

setup(

  options={'py2exe':{'bundle_files':1,'compressed':True}},
  windows=[{"script":'hr_data_downloader.py',"icon_resources":   [(0,"icon.ico")]}],
 data_files = [],
 zipfile=None
)

一开始我在运行可执行文件时遇到了问题,但在阅读了以下帖子后,我通过显式添加两个 dll 进行了更正。

Creating single EXE using py2exe for a Tkinter program

py2exe - generate single executable file

请告诉我是否可以通过修改设置文件或任何其他 py2exe 文件来创建单文件可执行文件。 另外请告诉我为什么创建的.exe没有显示图标

如果它可以帮助我创建单文件可执行文件,我愿意尝试其他分发实用程序,例如 py2exe。

【问题讨论】:

    标签: python tkinter py2exe distutils


    【解决方案1】:

    我想出了如何使用 pyinistaller 来做到这一点。 虽然它使 exe 变得相当大,但我很高兴我只有一个文件。

    以下是我所做的:

    1. 已安装 pyinstaller,pywin32
    2. 打开命令提示符
    3. 转到我的代码文件夹
    4. 使用命令pyinstaller --onefile --windowed myframe.py

    pyinstaller的手册有详细的解释。

    【讨论】:

      【解决方案2】:

      Pyinstaller 可用于从 python 项目生成单个可执行文件。
      第 1 步:
      安装 Pyinstaller
      https://www.pyinstaller.org/downloads.html
      https://github.com/pyinstaller/pyinstaller/zipball/develop

      第 2 步:
      解压python安装目录(C:\Python27\)中的文件
      将提取的文件夹重新命名为:pyinstaller
      第 3 步:
      现在在 Python 目录中打开命令提示符和
      use command : cd pyinstaller
      (创建exe)
      use command : python pyinstaller.py your_python_file.py
      (创建单个exe)
      use command : python pyinstaller.py --onefile --windowed your_python_file.py (your_python_file.py : 应该放在 C:\Python27\pyinstaller\)

      输出文件夹:C:\Python27\pyinstaller\main\dist

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-02
        • 1970-01-01
        • 2012-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-11
        相关资源
        最近更新 更多