使用py2exe创建单文件可执行文件

时间:2015-12-26 20:46:58

标签: python tkinter py2exe distutils

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

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

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

    • 我在“windows”部分提到了"icon_resources":[(0,"icon.ico")]
  3. 以下是我使用的 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。

2 个答案:

答案 0 :(得分:1)

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

以下是我的所作所为:

  1. 已安装的pyinstaller,pywin32
  2. 打开命令提示符
  3. 转到我的代码文件夹
  4. 使用命令pyinstaller --onefile --windowed myframe.py
  5. pyinstaller手册有详细解释。

答案 1 :(得分:0)

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