鱼C论坛

 找回密码
 立即注册
查看: 1777|回复: 11

[已解决]有没有编译型的python

[复制链接]
发表于 2023-4-25 17:10:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如题python速度慢,用pyinstakler打包之后是一个文件夹,我只想要exe
最佳答案
2023-4-26 16:05:34
本帖最后由 liuhongrun2022 于 2023-4-26 16:09 编辑

如果只想要单文件的话
打包加上-F参数
例如
  1. pyinstaller -F test.py
复制代码

打包之后把除dist文件夹外生成的其他文件夹全部删除,dist文件夹里就是单文件的exe
如果是tk程序,不想要cmd窗口的话,加上-w
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-25 17:13:39 | 显示全部楼层
本帖最后由 isdkz 于 2023-4-26 17:18 编辑

Python 本身是一种解释型语言,这意味着它在运行时解释和执行代码。然而,有一些工具和方法可以帮助将 Python 代码编译成可执行文件(.exe),这样可以提高代码的运行速度并方便发布。

`Nuitka` 是一个用于将 Python 代码编译成 C 代码的工具,然后再将 C 代码编译成可执行文件。通过 Nuitka 编译后的代码执行速度相对更快,而且可以创建独立的可执行文件。要使用 Nuitka,您需要先安装它:

  1. pip install nuitka
复制代码


然后使用以下命令将您的 Python 代码(例如:`your_script.py`)编译成可执行文件:

  1. nuitka --standalone --onefile your_script.py
复制代码


编译完成后,您将在当前目录中找到一个名为 `your_script.exe` 的可执行文件。注意,为了保证兼容性,请确保在目标操作系统上执行这些命令。

另外,您也可以尝试使用 `PyInstaller`,它可以将 Python 代码打包成单个可执行文件。要使用 PyInstaller,您需要先安装它:

  1. pip install pyinstaller
复制代码


然后使用以下命令将您的 Python 代码(例如:`your_script.py`)打包成单个可执行文件:

  1. pyinstaller --onefile your_script.py          # 相当于 pyinstaller -F your_script.py
复制代码


此命令将生成一个名为 `your_script.exe` 的可执行文件。在 Windows 上,这个文件通常位于 `dist` 文件夹中。

请注意,编译后的可执行文件可能会比原始 Python 代码更大,因为它包含了 Python 解释器和所需的库。此外,将 Python 代码编译成可执行文件并不能完全保护您的源代码,有意的攻击者仍然可以通过逆向工程手段提取出源代码。


要用编译型语言建议去学Go,上手难度相对较低的编译型语言
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-4-25 18:01:51 | 显示全部楼层
isdkz 发表于 2023-4-25 17:13
Python 本身是一种解释型语言,这意味着它在运行时解释和执行代码。然而,有一些工具和方法可以帮助将 Pyth ...

最后一行没句号,说明最后一行是人工改过的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-25 18:02:53 | 显示全部楼层
歌者文明清理员 发表于 2023-4-25 18:01
最后一行没句号,说明最后一行是人工改过的

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-25 20:05:25 | 显示全部楼层


也可以用 Cython,和上面大佬的类似,也是将 Python 代码编译成 C 语言代码

之前做 GUI 时候想着去研究研究,后来感觉太耗费时间了就没了解了

但是 Cython 本身不能打包程序,只是能编译成 C 代码

需要使用其他工具进行搭配后才行,能显著减少占用内存量,及运行速度

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-26 16:05:34 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
本帖最后由 liuhongrun2022 于 2023-4-26 16:09 编辑

如果只想要单文件的话
打包加上-F参数
例如
  1. pyinstaller -F test.py
复制代码

打包之后把除dist文件夹外生成的其他文件夹全部删除,dist文件夹里就是单文件的exe
如果是tk程序,不想要cmd窗口的话,加上-w
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-26 17:13:04 | 显示全部楼层
isdkz 发表于 2023-4-25 17:13
Python 本身是一种解释型语言,这意味着它在运行时解释和执行代码。然而,有一些工具和方法可以帮助将 Pyth ...

不行,pyinstaller报错说没有-f属性
nuitka打包很慢,卡住
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-26 17:18:57 | 显示全部楼层
歌者文明清理员 发表于 2023-4-26 17:13
不行,pyinstaller报错说没有-f属性
nuitka打包很慢,卡住

是大写F,我记错了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-26 17:27:47 | 显示全部楼层
歌者文明清理员 发表于 2023-4-26 17:13
不行,pyinstaller报错说没有-f属性
nuitka打包很慢,卡住

大写F
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-26 17:36:36 | 显示全部楼层
isdkz 发表于 2023-4-26 17:18
是大写F,我记错了

最佳答案已经给了……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-26 22:49:16 From FishC Mobile | 显示全部楼层
isdkz 发表于 2023-4-25 17:13
Python 本身是一种解释型语言,这意味着它在运行时解释和执行代码。然而,有一些工具和方法可以帮助将 Pyth ...

第一次知道Python还能代码编译成C(π_π)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-26 22:52:47 | 显示全部楼层
九歌当下 发表于 2023-4-26 22:49
第一次知道Python还能代码编译成C(π_π)

不是真正意义的编译成C,有很多这样的库可以把python代码转成C或C++的代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-20 19:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表