如何将.py转换为.exe for Python?

use*_*807 98 python exe py2exe python-3.x python-3.6

我正在尝试将一个相当简单的Python程序转换为可执行文件,但找不到我想要的内容,所以我有几个问题(我正在运行Python3.6):

到目前为止我发现的这种方法如下

  1. 下载旧版本的Python并使用 pyinstaller/py2exe
  2. 在3.6中设置一个允许我做1的虚拟环境.
  3. 下载Python到C++转换器并使用它.

这是我尝试过的/我遇到的问题.

  • pyinstaller在它之前安装了所需的下载(pypi-something),所以它没有用.下载必备文件后,pyinstaller仍然无法识别它.
  • 如果我在2.7中设置virtualenv,我真的需要安装2.7吗?
  • 同样,我看到的唯一一个到C++转换器的python只能运行到python 3.5 - 如果尝试这个,我是否需要下载并使用这个版本?

Mar*_*n J 100

在Python 3.6中将.py转换为.exe的步骤

  1. 安装Python 3.6.
  2. 安装cx_Freeze,(打开命令提示符并键入pip install cx_Freeze.
  3. 安装idna,(打开命令提示符并键入pip install idna.
  4. 写一个.py名为的程序myfirstprog.py.
  5. 创建一个setup.py在脚本的当前目录中命名的新python文件.
  6. setup.py下面的代码中保存.
  7. 按下shift键右键单击同一目录,这样就可以打开命令提示符窗口.
  8. 在提示符下键入 python setup.py build
  9. 如果您的脚本没有错误,那么创建应用程序就没有问题.
  10. 检查新创建的文件夹build.它有另一个文件夹.在该文件夹中,您可以找到您的应用程序 运行.让自己开心

请参阅我博客中的原始脚本.

setup.py:

from cx_Freeze import setup, Executable

base = None    

executables = [Executable("myfirstprog.py", base=base)]

packages = ["idna"]
options = {
    'build_exe': {    
        'packages':packages,
    },    
}

setup(
    name = "<any name>",
    options = options,
    version = "<any number>",
    description = '<any description>',
    executables = executables
)
Run Code Online (Sandbox Code Playgroud)

编辑:

  • 请确保不要myfirstprog.py将您的.py扩展名文件名放在步骤4中创建;
  • 你应该包括每import版包您.pypackages列表(例如:packages = ["idna", "os","sys"])
  • any name, any number, any descriptionsetup.py文件不应保持不变,就应该相应地改变它(例如:name = "<first_ever>", version = "0.11", description = '')
  • import开始步骤8之前,必须先安装ed软件包.

  • 有没有办法让它成为"独立"的可执行文件?如果我按照你在文章中的建议继续进行,我最终会得到文件夹exe.win.32-3.6.其中包含大量支持文件和目录(如'collections /','email'等).简单的打印('你好')太可怕了.我想制作一个单独的可执行文件,它将在另一台计算机上运行,​​而不需要其他文件.是否有构建选项? (7认同)
  • @FanaticD Python 不是您最好的选择。Cython(工作的噩梦)或 Nuitka 将是您最好的选择。但是让这些工作本身就是一项成就。 (2认同)

Rod*_*nto 54

Pyinstaller仍然不支持Python 3.6.所以为了使用它你需要Python 3.5或者下面的版本.我不确定py2exe.

无论如何,案例1应该这样做:

在Python文件夹中打开cmd窗口(打开命令窗口并使用cd或按住shift,在Windows资源管理器上右键单击它,然后选择"在此处打开命令窗口").然后进入

pip install pyinstaller
Run Code Online (Sandbox Code Playgroud)

就是这样.

使用它的最简单方法是在命令提示符下输入

pyinstaller file_name.py
Run Code Online (Sandbox Code Playgroud)

有关如何使用它的更多详细信息,请查看此问题.

更新

Pyinstaller现在支持Python 3.6

  • 刚试过,确实如此. (17认同)
  • 刚刚用 python 3.7.0 测试过。虽然有很多警告,但编译成功并在 Windows 10 上运行 (5认同)
  • 我用 python 3.5.0 编译了一个程序,没有警告或错误,并且它按预期运行 (2认同)

Gab*_*Gab 17

在Github上有一个名为auto-py-to-exe的开源项目.实际上它也只是内部使用Pyinstaller,但由于它有一个控制Pyinstaller的简单GUI,它可能是一个舒适的选择.与其他解决方案相比,它还可以输出独立文件.他们还提供了一个显示如何设置的视频.

GUI:

自动Py到Exe

输出:

产量

  • 您应该提到它需要 MVC++。错误:需要 Microsoft Visual C++ 14.0。 (4认同)
  • 我没有找到任何价值,因为它是建立在 pyinstaller 上的,如果你在 pyinstaller 中遇到错误,你也会在这里得到它! (4认同)

Lon*_*olf 9

现在您可以使用 PyInstaller 进行转换。它甚至适用于 Python 3。

脚步:

  1. 启动你的电脑
  2. 打开命令提示符
  3. 输入命令 pip install pyinstaller
  4. 安装后,使用命令“cd”进入工作目录。
  5. 运行命令 pyinstaller <filename>

  • 因为它不适用于 OP 专门编写的他正在使用的 Python 3.6。 (3认同)
  • Pyinstaller 现在应该可以工作了。如果没有,请在评论中告诉我 (2认同)
  • 在步骤 5 中,不应使用 pyinstall &lt;filename&gt;,而应使用 pyinstaller &lt;filename&gt;。 (2认同)

Mik*_*eyB 7

我一直在使用 Nuitka 和 PyInstaller 和我的包 PySimpleGUI。

Nuitka 使用 Nuikta 编译 tkinter 时出现问题。其中一位项目贡献者开发了一个解决问题的脚本。

如果您不使用 tkinter,它可能“对您有用”。如果您使用的是 tkinter,请说出来,我会尝试发布脚本和说明。

PyInstaller 我正在运行 3.6 并且 PyInstaller 运行良好!我用来创建我的 exe 文件的命令是:

pyinstaller -wF myfile.py

-wF 将创建单个 EXE 文件。因为我的所有程序都有一个 GUI 并且我不想显示命令窗口,所以 -w 选项将隐藏命令窗口。

这是接近得到什么看起来像一个WinForms程序来运行这是用Python编写的。

[2019 年 7 月 20 日更新]

有使用 PyInstaller 的基于 PySimpleGUI GUI 的解决方案。它使用 PySimpleGUI。它被称为pysimplegui-exemaker,可以通过 pip 安装。

pip install PySimpleGUI-exemaker

安装后运行:

python -m pysimplegui-exemaker.pysimplegui-exemaker


小智 6

我不能告诉你什么是最好的,但我过去成功使用的工具是cx_freeze.他们最近更新(17年1月7日)到5.0.1版,它支持Python 3.6.

这是pypi https://pypi.python.org/pypi/cx_Freeze

文档显示,根据您的需求,有多种方法可以执行此操作.
http://cx-freeze.readthedocs.io/en/latest/overview.html

我还没有尝试过,所以我将指出一个帖子,其中讨论了简单的方法.有些事情可能会或可能没有改变.
我如何使用cx_freeze?

  • 值得一提的是,cxFreeze不做单文件可执行文件. (9认同)