You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻找PyInstaller替代方案:将Python代码编译为Linux可执行文件/库

可行替代方案

针对你的需求,以下是几个无需PyInstaller的实现方案,均能满足转C、编译、跨Linux调用及提速的要求:

方案1:Cython

Cython是将Python代码转换为C扩展的主流工具,能直接处理numpy这类依赖,编译后的代码执行效率显著提升,还能生成可调用的库或独立可执行文件。

步骤:

  1. 安装Cython和编译依赖
pip install cython
sudo apt-get install gcc python3-dev  # Debian/Ubuntu系,其他Linux发行版对应安装gcc和Python开发包
  1. 将你的Python代码保存为print_hi.pyx(Cython源文件),内容不变:
import numpy as np

def print_hi(name):
    arr = np.zeros(9)
    print(arr)
    print(f'Hi, {name}')

if __name__ == '__main__':
    print_hi('Compiled Python')
  1. 编写setup.py用于编译:
from setuptools import setup
from Cython.Build import cythonize
import numpy as np

setup(
    ext_modules=cythonize("print_hi.pyx"),
    include_dirs=[np.get_include()]  # 引入numpy的头文件路径
)
  1. 编译生成库或可执行文件:
  • 生成共享库(可被Python或C程序调用):
python setup.py build_ext --inplace

编译完成后会生成print_hi.c(转换后的C代码)和print_hi.*.so(Linux下的共享库)。你可以在Python中直接import调用,也能通过C语言的dlopen加载调用。

  • 生成独立可执行文件:
    如果需要直接运行的可执行文件,可先生成带main函数的C代码再手动编译:
cython --embed print_hi.pyx
gcc -o print_hi print_hi.c $(python3-config --cflags --ldflags) -I$(python3 -c "import numpy; print(numpy.get_include())")

生成的print_hi就是可直接运行的Linux可执行文件,包含所有依赖的编译后的机器码。

优势:

  • 完全转换为C代码,执行速度比原生Python快数倍(尤其是循环密集型代码)
  • 生成的共享库可跨Linux环境调用(只要系统架构一致)
  • 完美支持numpy等第三方依赖

方案2:Nuitka

Nuitka是将Python代码编译为C代码后再编译为机器码的工具,无需手动修改代码,直接处理原生Python代码,生成的可执行文件独立且运行速度快。

步骤:

  1. 安装Nuitka
pip install nuitka
  1. 编译你的Python代码:
python -m nuitka --standalone --onefile print_hi.py
  • --standalone:生成包含所有依赖的独立包
  • --onefile:将所有内容打包为单个可执行文件(可选,不加则生成一个目录)

编译完成后会生成print_hi.bin(单个可执行文件)或print_hi.dist目录,直接运行即可:

./print_hi.bin

优势:

  • 无需修改原生Python代码,直接编译
  • 生成的可执行文件可在同架构的任意Linux环境运行(无需安装Python)
  • 执行速度接近C程序,尤其是对循环和计算密集型代码优化明显

方案3:PyPy(补充方案)

如果你更侧重运行速度而非显式生成C代码,PyPy的JIT编译能大幅提升Python代码的执行效率,也能便捷运行代码:

步骤:

  1. 安装PyPy
sudo apt-get install pypy3  # Debian/Ubuntu系
  1. 直接运行代码:
pypy3 print_hi.py

注意:

PyPy对numpy的支持需要安装pypy3-numpy,多数常规numpy操作都能完美兼容,你的示例代码无任何问题。


内容的提问来源于stack exchange,提问作者Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 12:35:20