gpt4 book ai didi

python - 将自定义 .py 文件打包成 .exe

转载 作者:太空狗 更新时间:2023-10-30 00:09:38 25 4
gpt4 key购买 nike

我做了一个小项目,其中包括将各种 python 文件导入另一个 python 文件。这是我的目录结构。

Main_Folder
|_ my_main_file.py
|_ Sites (a directory inside Main_Folder)
|_ __init__.py
|_ some_other.py

这基本上是我的目录结构。此 some_other.py 通过以下命令导入到我的 my_main_file.py 中:

从站点导入 *

我正在从该目录导入所有内容。所以,我想做的是将整个项目变成一个独立二进制文件。我使用 pyintaller 将我的 .py 文件转换为 .exe。但是,我只编写了将所有内容都放在 1 个文件中的脚本,这使得任务变得简单。但是,这一次,我正在尝试做一些新的事情。

我的 python 脚本接受命令行参数并且它正在运行。如果没有命令行参数,python 脚本将无法运行。我可以转换为 exe,但即使我给出参数,该 exe 也什么都不做。

因此,我从 pyinstaller 获得了一个 .spec 文件并对其进行修改以获取我的 some_other.py 文件。 SPEC 文件如下所示:

# -*- mode: python -*-

block_cipher = None


a = Analysis(['my_main_file.py'],
pathex=['C:\\Users\\User Name\\Main_Folder'],
binaries=None,
datas=[('Sites/*.py','Sites')],
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='my_main_file',
debug=False,
strip=False,
upx=True,
console=True )

这生成了一个 .exe,但该 exe 无法运行。该 exe 不会显示任何内容。但是,它的大小大约为 11 MB。有什么东西吗?我尝试了 nuitka,但是那个给出了一个关于无法找到 gendef.exe 的错误,我对安装 minGW 并不感兴趣。

顺便说一句,我在 64 位机器上,py2exe 的 bundle_file:1 对我不起作用。

最佳答案

我建议您使用 cx_Freeze ,我认为最好的 python 代码打包器。

安装

安装非常简单,只需下载并安装 cx_Freeze installer (this one 如果您使用的是 python 3.4)取自官方 PyPi 包 site .完成后,打开 cmd 并运行 python cxfreeze-postinstall

py to exe with cx_Freeze

最快的方法是在项目的父目录上打开命令提示符并运行 cxfreeze <your .py script> .这将创建一个 dist 文件夹,其中包含您的主程序及其导入的所有模块。

但是,如果您想更进一步并在使代码成为可执行文件时有更多的选择,您可以制作 setup.py正如解释的那样 here然后在 cmd 中运行 python setup.py build .与前面的方法不同,这会创建一个名为 build 的目录其中包含另一个目录,其中包含您正在编译的平台的名称。现在,它里面有可执行文件和库。

关于python - 将自定义 .py 文件打包成 .exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40435377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com