下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

python应用:python工程编译成EXE

作者:码行     来源: https://www.cnblogs.com/coding4joy/p/12523746.html点击数:1009发布时间: 2020-03-27 11:16:43

标签: python编程语言Python语言

大神带你学编程,欢迎选课

 Python是一种解释型脚本语言,可以应用于以下领域: [2] 

  • web 和 Internet开发
  • 科学计算和统计
  • 人工智能
  • 桌面界面开发
  • 软件开发
  • 后端开发
  • 网络爬虫

前言

  python编译成EXE文件后,可以独立使用。亲测,一个复杂的python工程包含多个包多个模块,可以生成exe文件。

  目的

  Windows下将整个python工程编译成单个EXE或者单个目录带EXE文件

  工具

  PyInstaller(windows,源代码python3.6)

  步骤

  项目根目录下新建frozen_dir.py

  冻结路径(防止编译成exe后相对路径找不到)

  复制代码

  #-*-coding:utf-8-*-

  importsys

  importos

  #冻结路径,所有路径以此为基准,打包后才能使用

  defapp_path():

  """Returnsthebaseapplicationpath."""

  ifhasattr(sys,'frozen'):

  #HandlesPyInstaller

  returnos.path.dirname(sys.executable).replace("\\\\","/")

  returnos.path.dirname(__file__).replace("\\\\","/")

  复制代码

  路径引用

  importfrozen_dir

  root_path=frozen_dir.app_path()

  path=os.path.join(root_path,default_path)

  根目录下新建入口文件main.py

  fromtestimportmain

  if__name__=='__main__':

  main()

  根目录下新建编译文件build.py

  复制代码

  #-*-coding:utf-8-*-

  importPyInstaller.__main__

  importfrozen_dir

  SETUP_PATH=frozen_dir.app_path()

  defbuild():

  PyInstaller.__main__.run([

  '--name=%s'%"main",#生成的exe文件名

  ['--onedir','--onefile'][0],#单个目录or单个文件

  '--noconfirm',#Replaceoutputdirectorywithoutaskingforconfimation

  ['--windowed','--console'][1],

  '--add-binary=./python3.dll;.',#外部的包引入

  '--add-binary=%s'%SETUP_PATH+'/config/logging.yaml;config',#配置项

  '--add-data=%s'%SETUP_PATH+'/config/config.ini;config',#分号隔开,前面是添加路径,后面是添加到哪个目录

  '--hidden-import=%s'%'sqlalchemy.ext.baked',

  '--hidden-import=%s'%'frozen_dir',#手动添加包,用于处理modulenotfound

  'main.py',#入口文件

  ])

  if__name__=='__main__':

  build()

  复制代码

  运行build文件,根目录下dist/main/main.exe为可执行文件,双击可运行。运行闪退的话,可以cmd进入到相关路径运行main.exe,缺失的包在build.py文件中添加hidden-imports项。

Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

赞(8)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程