歌者文明清理员 发表于 2023-4-25 17:10:51

有没有编译型的python

如题python速度慢,用pyinstakler打包之后是一个文件夹,我只想要exe

isdkz 发表于 2023-4-25 17:13:39

本帖最后由 isdkz 于 2023-4-26 17:18 编辑

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

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

pip install nuitka


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

nuitka --standalone --onefile your_script.py


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

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

pip install pyinstaller


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

pyinstaller --onefile your_script.py          # 相当于 pyinstaller -F your_script.py


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

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


要用编译型语言建议去学Go,上手难度相对较低的编译型语言

歌者文明清理员 发表于 2023-4-25 18:01:51

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

最后一行没句号,说明最后一行是人工改过的

isdkz 发表于 2023-4-25 18:02:53

歌者文明清理员 发表于 2023-4-25 18:01
最后一行没句号,说明最后一行是人工改过的

{:10_249:}

Twilight6 发表于 2023-4-25 20:05:25



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

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

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

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

liuhongrun2022 发表于 2023-4-26 16:05:34

本帖最后由 liuhongrun2022 于 2023-4-26 16:09 编辑

如果只想要单文件的话
打包加上-F参数
例如pyinstaller -F test.py
打包之后把除dist文件夹外生成的其他文件夹全部删除,dist文件夹里就是单文件的exe
如果是tk程序,不想要cmd窗口的话,加上-w

歌者文明清理员 发表于 2023-4-26 17:13:04

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

不行,pyinstaller报错说没有-f属性
nuitka打包很慢,卡住

isdkz 发表于 2023-4-26 17:18:57

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

是大写F,我记错了{:10_277:}

liuhongrun2022 发表于 2023-4-26 17:27:47

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

大写F

歌者文明清理员 发表于 2023-4-26 17:36:36

isdkz 发表于 2023-4-26 17:18
是大写F,我记错了

最佳答案已经给了……

九歌当下 发表于 2023-4-26 22:49:16

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

第一次知道Python还能代码编译成C(π_π)

isdkz 发表于 2023-4-26 22:52:47

九歌当下 发表于 2023-4-26 22:49
第一次知道Python还能代码编译成C(π_π)

不是真正意义的编译成C,有很多这样的库可以把python代码转成C或C++的代码
页: [1]
查看完整版本: 有没有编译型的python