关于cython:Cython-PyInstaller-创建-EXE-文件

4次阅读

共计 860 个字符,预计需要花费 3 分钟才能阅读完成。

参考

  • Github 上的例程

简介

  • 引入 Cython 的目标是:将局部 python 源码转译成 c,而后编译成.pyd 格局的动态链接库,防止软件外围逻辑被轻易反编译
  • 引入 PyInstaller 的目标,打包成 exe,可选单个文件或目录

依赖

  • 本地环境是 Python2.7 和 Python3.8 并存,通过复制可执行文件的形式,能够用 python2, pip2 援用 python2
  • 装置 VC For Python 2.7
  • 全局装置 Cython,我这里用清华的镜像能够间接装:pip2 install cython
  • 全局装置 PyInstaller。这个略微麻烦些,适宜 python2.7 的最初一版是 3.6,间接用 pip2 install PyInstaller==3.6 未胜利,只能手动装置。步骤如下:

    1. 从 PyPi 下载 3.6 版的 tar.gz 包,链接在此
    2. 解压到本地某目录,在该目录关上命令行窗口
    3. 执行 python2 setup.py install
    4. 胜利后能够间接命令行中执行 PyInstaller,如果零碎中也装置了 Python3 的 PyInstaller,那么能够用 python2 -m PyInstaller 调用
  • 至此,依赖环境曾经就绪

构建

  • 把参考例程克隆到本地

    git clone https://github.com/prologic/pyinstaller-cython-bundling.git
    cd pyinstaller-cython-bundling
  • 我的项目中的 build.sh 不适用于 Windows,须要自行在命令行执行以下命令:

    1. 原脚本中的 pip install 步骤曾经在依赖一节中实现,跳过
    2. 执行 python setup.py develop
    3. 执行 python2 -m PyInstaller -r file_a.so,dll,file_a.so -r file_b.so,dll,file_b.so -D ./bin/hello
      下面用 -r 参数指定 输出文件, 类型, 名称,多个文件顺次传入;-D 示意构建成目录,指定 -F 可构建成单个 EXE;最初是入口文件
  • 构建实现后能够在 dist 目录中找到生成的 hello.exe
正文完
 0