问题:如何将Python的.py转换为.exe?
我试图将一个相当简单的Python程序转换为可执行文件,但是找不到我想要的东西,所以我有几个问题(我正在运行Python 3.6):
到目前为止,我发现的方法如下
- 下载旧版本的Python并使用
pyinstaller/py2exe
- 在Python 3.6中设置一个虚拟环境,这将允许我执行1。
- 下载Python到C ++转换器并使用它。
这是我尝试过的/遇到的问题。
- 我在安装
pyinstaller
所需的下载之前安装了它(pypi-something),所以它无法正常工作。下载必备文件后,pyinstaller
仍然无法识别它。 - 如果要在Python 2.7中设置virtualenv,我是否真的需要安装Python 2.7?
- 同样,我看到的唯一的python至C ++转换器只能在Python 3.5之前工作-尝试这样做是否需要下载并使用此版本?
回答 0
在Python 3.6中将.py转换为.exe的步骤
- 安装Python 3.6。
- 安装cx_Freeze,(打开命令提示符并输入
pip install cx_Freeze
。 - 安装idna,(打开命令提示符并输入
pip install idna
。 - 编写一个
.py
名为的程序myfirstprog.py
。 setup.py
在脚本的当前目录中创建一个新的python文件。- 在
setup.py
文件中,复制下面的代码并保存。 - 按住Shift键并在同一目录上单击鼠标右键,因此您可以打开命令提示符窗口。
- 在提示中,键入
python setup.py build
- 如果您的脚本没有错误,那么创建应用程序将没有问题。
- 检查新创建的文件夹
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
)
编辑:
- 确保不要
myfirstprog.py
将步骤4中.py
创建的扩展名放在文件名中; - 你应该包括每
import
版包您.py
到packages
列表(例如:packages = ["idna", "os","sys"]
) any name, any number, any description
在setup.py
文件不应保持不变,就应该相应地改变它(例如:name = "<first_ever>", version = "0.11", description = ''
)- 在
import
你开始之前,编辑软件包必须安装第8步。
回答 1
PyInstaller支持Python 3.6。
在您的Python文件夹中打开一个cmd窗口(打开命令窗口并使用cd
或按住shift键,在Windows资源管理器中右键单击它,然后选择“在此处打开命令窗口”)。然后输入
pip install pyinstaller
就是这样。
使用它的最简单方法是在命令提示符下输入
pyinstaller file_name.py
有关如何使用它的更多详细信息,请查看此问题。
回答 2
GitHub上有一个名为auto-py-to-exe的开源项目。实际上,它也仅在内部使用PyInstaller,但由于它具有控制PyInstaller的简单GUI,因此它可能是一个舒适的选择。与其他解决方案相比,它还可以输出独立文件。他们还提供了视频,展示了如何进行设置。
界面:
输出:
回答 3
我无法告诉您什么是最好的,但是我过去成功使用的工具是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
我还没有尝试过,所以我将指向一个帖子,其中讨论了执行此操作的简单方法。有些事情可能会或可能不会改变。
回答 4
我一直在我的软件包PySimpleGUI中使用Nuitka和PyInstaller。
努伊特卡 存在使tkinter与Nuikta进行编译的问题。一个项目贡献者开发了一个脚本来解决该问题。
如果您不使用tkinter,则可能对您“有效”。如果您使用的是tkinter,请这样说,我将尝试发布脚本和说明。
PyInstaller 我正在运行3.6,PyInstaller运行良好!我用来创建exe文件的命令是:
pyinstaller -wF myfile.py
-wF将创建一个EXE文件。因为我的所有程序都具有GUI,并且我不想显示命令窗口,所以-w选项将隐藏命令窗口。
这几乎就像运行用Python编写的Winforms程序一样。
[2019年7月20日更新]
有使用PyInstaller的基于PySimpleGUI GUI的解决方案。它使用PySimpleGUI。它称为pysimplegui-exemaker,可以进行pip安装。
pip install PySimpleGUI-exemaker
要在安装后运行它:
python -m pysimplegui-exemaker.pysimplegui-exemaker
回答 5
现在,您可以使用PyInstaller进行转换。我甚至使用Python 3。
脚步:
- 启动电脑
- 打开命令提示符
- 输入命令
pip install pyinstaller
- 安装后,使用命令“ cd”转到工作目录。
- 运行命令
pyinstall <filename>