我需要将Python脚本转换为Windows可执行文件。
我已将Python 2.6安装到python26
。
我创建了一个脚本并将其保存在C:\pythonscript
中。在这个文件夹里面有两个文件
Setup.py
和oldlogs.py
(此文件需要转换)
setup.py
代码
from distutils.core import setup
import py2exe
setup(console=['oldlogs.py'])
如何将oldlogs.py转换为exe文件?
答案 0 :(得分:52)
或使用PyInstaller替代py2exe。这是一个很好的starting point。 PyInstaller让你也为linux和mac创建可执行文件......
答案 1 :(得分:10)
答案 2 :(得分:8)
我推荐PyInstaller,可以使用以下命令将简单的python脚本转换为exe:
utils/Makespec.py [--onefile] oldlogs.py
创建一个yourprogram.spec文件,它是用于构建最终exe的配置。 Next命令从配置文件构建exe:
utils/Build.py oldlogs.spec
可以找到更多here
答案 3 :(得分:6)
为了完整性,cx_Freeze是您可以使用的另一个工具(与PyInstaller和py2exe一起,其他答案已经提到过)。
答案 4 :(得分:3)
由于其他 SO 答案链接到此问题,因此值得注意的是,现在 PyOxidizer 中有另一个选项。
它是一个 rust 实用程序,其工作方式与 pyinstaller 的某些方式相同,但具有一些额外的功能,详细说明 here,总结一下关键功能:
onefile
模式时将它们解压缩到临时目录(pyoxidizer
的另一个优点是,如果您在具有 glibc 版本的系统上创建二进制文件,它似乎不会遇到 pyinstaller 可能出现的 GLIBC_X.XX not found
问题比目标系统更新)。
总体来说pyinstaller比PyOxidizer使用起来简单很多,PyOxidizer往往需要一些复杂的配置文件,而且Pythony较少,因为它是用Rust编写的,并且使用了Python世界不太熟悉的配置文件格式,但是PyOxidizer做了一些更高级的东西,特别是如果您希望生成单个二进制文件(这不是 pyinstaller 的默认设置)。
答案 5 :(得分:0)
# -*- mode: python -*-
block_cipher = None
a = Analysis(['SCRIPT.py'],
pathex=[
'folder path',
'C:\\Windows\\WinSxS\\x86_microsoft-windows-m..namespace-downlevel_31bf3856ad364e35_10.0.17134.1_none_50c6cb8431e7428f',
'C:\\Windows\\WinSxS\\x86_microsoft-windows-m..namespace-downlevel_31bf3856ad364e35_10.0.17134.1_none_c4f50889467f081d'
],
binaries=[(''C:\\Users\\chromedriver.exe'')],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='NAME OF YOUR EXE',
debug=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=True )