Python 与 Packages(四):PyInstaller库

PyInstaller库(第三方库)

  • 主页:https://pyinstaller.org/

  • PyInstaller 将 Python 应用程序及其所有依赖项捆绑到一个包中。用户可以在不安装 Python 解释器或任何模块的情况下运行打包的应用程序。

  • PyInstaller 支持 Python 3.7 及更新版本,并正确地捆绑了许多主要的 Python 包,如 numpy、matplotlib、PyQt、wxPython 等。

  • PyInstaller 在 Windows、MacOS X 和 Linux 上进行了测试。

常用参数:

-h--help 显示帮助消息
--clean 清理 Py 安装程序缓存并删除临时文件。
-D--onedir 创建包含可执行文件的文件夹(默认)
-F--onefile 创建一个文件捆绑的可执行文件(单个程序)。
-i <FILE.ico> 将图标应用于可执行文件

Tips

  1. pyinstaller 库-帮助文档

    Using PyInstaller

  2. 递归函数应用 I:绘制 n 阶科赫曲线

    • 递归函数:

      # 绘制n阶科赫曲线
      def koch(lenth,n):
          if n == 0:
              t.pencolor(r.choice(str))
              t.fd(lenth)
          else:
              for i in [0,60,-120,60]:
                  t.left(i)
                  koch(lenth/3,n-1)

    • 源代码:

      import turtle as t
      import random as r
      
      str = ["LightSkyBlue","DeepSkyBlue","Cyan","Turquoise"]
      # 绘制n阶科赫曲线
      def koch(lenth,n):
          if n == 0:
              t.pencolor(r.choice(str))
              t.fd(lenth)
          else:
              for i in [0,60,-120,60]:
                  t.left(i)
                  koch(lenth/3,n-1)
      
      def main():
          level = 4
          lenth = 450
          t.setup(800,600)
          t.pu()
          t.goto(-225,125)
          t.pd()
          t.width(2)
          t.speed(10)
          # 科赫雪花
          for i in range(3):
              koch(lenth,level)
              t.right(120)
          t.hideturtle()
          t.done()
      
      # 执行
      main()

    • 运行结果:

  3. 递归函数应用 II:汉诺塔

    • 源代码:

      step = 0
      # 把N个盘子从src搬到des,mid作为辅助
      def hanoi(src, des, mid, N):
          global step # 声明step使用全局变量
          if N == 1: # 基例
              step += 1
              print("step{:>3}: {} {}->{}".format(step,1,src,des)) # 直接从src搬到des
          else:
              hanoi(src,mid,des,N-1) # 先把N-1个从src搬到mid,des作为辅助
              step += 1
              print("step{:>3}: {} {}->{}".format(step,N,src,des)) # 然后把第N个从src搬到des
              hanoi(mid,des,src,N-1) # 再把N-1个从mid搬到des,src作为辅助
      # 执行
      hanoi('A','C','B',3)

    • 输出结果:

      step  1: 1 A->C
      step  2: 2 A->B
      step  3: 1 C->B
      step  4: 3 A->C
      step  5: 1 B->A
      step  6: 2 B->C
      step  7: 1 A->C


Python 与 Packages(四):PyInstaller库
https://luminous-ee.github.io/2023/01/25/Python-与-Packages(四):PyInstaller库/
作者
落与
发布于
2023年1月25日
许可协议