将简单的 Python 脚本转换为 Windows 可执行文件的过程 [重复]
Posted
技术标签:
【中文标题】将简单的 Python 脚本转换为 Windows 可执行文件的过程 [重复]【英文标题】:Process to convert simple Python script into Windows executable [duplicate] 【发布时间】:2011-01-09 08:37:57 【问题描述】:我编写了一个脚本来帮助 Windows 用户的日常生活。我只想将 .exe 发送给她,而不是要求她安装 python、dll 或处理任何其他文件。
我已经阅读了大量关于将 Python 脚本编译为可执行文件的 *** 条目。我有点困惑,因为有很多选择,但有些似乎过时了(自 2008 年以来没有更新),而且没有一个简单到让我在花了几个小时后不问这个问题。
我希望有更好、最新的方法来做到这一点。
我调查了:
pylunch py2exe cx_Freeze py2app(仅适用于 Mac) pyinstaller bbfreeze但要么我无法让它们工作,要么不明白如何获得我需要的结果。我得到的最接近的是 py2exe,但它仍然给了我 MSVCR71.dll
我会很感激分步回答,因为我也无法遵循这里的一些调整答案,这些答案需要事先了解如何使用 py2exe 或其他一些工具。
我使用的是 Python 2.5,因为其中一个模块仅适用于该版本。
【问题讨论】:
大多数情况下你可以忽略 MSVCR dll,我没有将它与我的应用程序一起分发,也没有听到任何错误(关键是他们可能有发生了,我只是没有收到报告:)) 【参考方案1】:如果您使用--onefile
选项,PyInstaller 将创建一个单文件可执行文件(尽管它实际上所做的是提取然后自行运行)。
有一个简单的 PyInstaller 教程here。如果您对使用它有任何疑问,请发布它们...
【讨论】:
最近好多了。您可以输入pip install pyinstaller
来安装它,然后输入pyinstaller -w yourpythonscript.py
来将它编译成一个exe。【参考方案2】:
我会和 @Nicholas 一起推荐 PyInstaller(带有 --onefile
标志),但警告:不要使用“最新版本”,PyInstaller 1.3 -- 它已经 年 了。使用“预发布”1.4,下载它here——或者更好的代码来自svn repo——安装SVN并运行svn co http://svn.pyinstaller.org/trunk pyinstaller
。
正如@Nicholas 所暗示的,动态库不能与可执行文件的其余部分从同一文件中运行——但幸运的是,它们可以与所有其余部分一起打包在“自解压”可执行文件中,该可执行文件将根据需要将自身解压到某个临时目录中; PyInstaller 在这方面做得很好(在许多其他方面——py2exe
更受欢迎,但在我看来pyinstaller
在所有其他方面都更可取)。
【讨论】:
我已经查看了您在此处提供的链接,它们不再可用。PyIstaller
不仅可以处理一个文件,还可以处理Python 2.7
吗?
PyInstaller 现在位于 GitHub 上,最高版本为 2.1,并支持 Python 2.7(以及其他版本)。当然“它适用于多个文件”(作为输入),但重点是生成一个文件作为输出。请参阅github.com/pyinstaller/pyinstaller/wiki 及其链接。【参考方案3】:
您可能想看看您的应用程序是否可以在 IronPython 下运行。如果是这样,您可以将其编译为exe http://www.codeplex.com/IronPython
【讨论】:
如果您使用 IronPython(我正在其中开发商业软件,请注意它需要 .NET Framework 2.0)【参考方案4】:使用 py2exe,将其包含在 setup.py 中:
from distutils.core import setup
import py2exe, sys, os
sys.argv.append('py2exe')
setup(
options = 'py2exe': 'bundle_files': 1,
windows = ['script': "YourScript.py"],
zipfile = None,
)
然后你可以通过命令提示符/空闲运行它,这两个都对我有用。希望对你有帮助
【讨论】:
【参考方案5】:我建议去http://sourceforge.net/projects/py2exe/files/latest/download?source=files 下载py2exe。然后制作一个名为 setup.py 的 python 文件。 在里面输入
from distutils.core import setup
import py2exe
setup(console=['nameoffile.py'])
保存在您的用户文件夹中 还要将要转换的文件保存在同一文件夹中
运行窗口的命令提示符
输入setup.py install py2exe
它应该打印多行代码...
接下来,打开 dist 文件夹。
运行exe
文件。
如果有程序运行所需的文件,请将它们移动到文件夹中
复制/发送 dist 文件夹给 person。
可选:更改 dist 文件夹的名称
希望它有效!:)
【讨论】:
这太棒了,我将我的脚本组织在几个相互使用的文件夹中,但是这种方法拾取了所有依赖项。我已经验证了 pyinstaller-2.0 并且没有拾取依赖项,导致生成的可执行文件打印与导入依赖项相关的错误。 我尝试使用此方法,但没有成功。当我在命令提示符下输入信息时,它只是运行了我的脚本【参考方案6】:您可以通过以下方式为您的 EXE 文件创建安装程序: 1. 按 WinKey + R 2. 在运行窗口中输入“iexpress”(不带引号) 3. 完成创建安装程序的向导。 4. 分发完成的EXE。
【讨论】:
这不正确【参考方案7】:1) 根据您的 Python 版本,从here 获取 py2exe。
2) 在要转换的脚本所在的文件夹中创建一个名为“setup.py”的文件,代码如下:
from distutils.core import setup import py2exe setup(console=['myscript.py']) #change 'myscript' to your script
3) 转到命令提示符,导航到该文件夹,然后键入:
python setup.py py2exe
4) 它将在与脚本相同的文件夹中生成一个“dist”文件夹。此文件夹包含 .exe 文件。
【讨论】:
您能否删除此答案,因为它与 Bob 2 年前发布的答案重复。【参考方案8】:您可以使用NSIS(Nullsoft 可脚本安装系统)从 python 脚本创建可执行文件。按照以下步骤将您的 python 文件转换为可执行文件。
在您的系统中下载并安装NSIS。
压缩.zip
文件中要导出到可执行文件中的文件夹。
启动NSIS
并选择Installer based on ZIP file
。查找并提供压缩文件的路径。
提供您的Installer Name
和Default Folder
路径并点击Generate 以生成您的exe
文件。
完成后,您可以点击 Test 来测试可执行文件或点击 Close 来完成该过程。
生成的可执行文件可以安装在系统上,并且可以分发以使用此应用程序,甚至无需担心安装所需的 python 及其包。
视频教程请关注:How to Convert any Python File to .EXE
【讨论】:
以上是关于将简单的 Python 脚本转换为 Windows 可执行文件的过程 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
在 ubuntu 12.04 下使用 cx-freeze 将 Python 脚本转换为 Windows exe 文件
编写一个简单的 python 脚本,使用 lame 将特定文件夹中的所有 .wav 文件转换为 .mp3