在Python中使用 CX_Freeze
我们在Python中创建了许多有趣的项目和程序。也许有一天我们创造了一些非常令人兴奋的东西,我们想分享它。通常,为了共享我们的Python程序,收件人需要安装相同版本的Python ,以及使用的所有模块。好吧,这可能很乏味。转换为 .exe 以进行分发的兴趣相当高,并且有几个选项。对于Python 2.7,Py2exe 是一个不错的选择,对于Python 3,cx_freeze 工作得非常好。
CX_冻结 | .py 到 .exe
cx_Freeze 是一组脚本和模块,用于将Python脚本冻结为可执行文件,其方式与 py2exe 和 py2app 非常相似。与这两个工具不同的是,cx_Freeze 是跨平台的,应该可以在Python本身可以运行的任何平台上运行。它支持Python 2.7 或更高版本(包括Python 3)。
我们首先需要获取 cx_Freeze: 从这里下载或使用 pip 安装它:
一旦我们有了 cx_freeze,我们就可以开始了。我们将使用正则表达式和 urllib 解析“geeksforgeeks.org”。
import urllib.request
import urllib.parse
import re
import time
url = 'https://www.geeksforgeeks.org/'
values = {'s' : 'basics',
'submit' : 'search'}
data = urllib.parse.urlencode(values)
data = data.encode('utf-8') # data should be bytes
req = urllib.request.Request(url, data)
resp = urllib.request.urlopen(req)
respData = resp.read()
paragraphs = re.findall(r'(.*?)
',str(respData))
for eachParagraph in paragraphs:
print(eachParagraph)
time.sleep(14)
输出:我们在最后添加了 14 秒的休眠,这样我们就可以运行可执行文件并在它关闭之前查看输出。所以,让我们将此文件保存为“reandurllib.py”。
现在,我们创建第二个名为“setup.py”的文件
from cx_Freeze import setup, Executable
setup(name = "GeeksforGeeks" ,
version = "0.1" ,
description = "" ,
executables = [Executable("reandurllib.py")])
所以,这里我们从 cx_Freeze setup 和可执行文件导入,然后我们调用 setup函数,添加 4 个参数。
- name :这是我们希望我们的可执行文件的名称
- Version :只是给它的版本号,
- 描述:我们想要提供的所有细节(可选)
- 可执行文件这些是我们最终要转换的内容,使用可执行函数和要转换的Python脚本的路径作为参数。
接下来,我们打开 cmd.exe、bash 或任何我们拥有的 shell,导航到包含 setup.py 和要转换的脚本的目录,然后运行:
python setup.py build
现在我们得到了一个构建目录。在其中,我们找到了另一个目录,在其中,我们找到了我们的可执行文件!如果一切顺利,它应该会从 geeksforgeeks.org 解析 basic 的搜索结果,并在关闭前显示 15 秒的文本结果。检查,如何找到可执行文件:有些事情不会那么简单。转换 Pygame 和 Matplotlib 之类的东西非常困难,需要根据具体情况来解决。
参考:
- CX_冻结
- 文档 CX_Freeze