当前位置:   article > 正文

使用pyinstaller将含有多个py文件的工程打包成一个exe文件_vsc py多文件项目打包 配置main.spec

vsc py多文件项目打包 配置main.spec

使用pyinstaller将含有多个py文件的工程打包成一个exe文件

  • 1.首先创建一个spec文件,命名为main在这里插入图片描述
    使用Notepad++将main.spec文件打开,将第二步中的代码复制到文件中。
  • 2.在文件中写下如下代码
# -*- mode: python -*-

block_cipher = None

a = Analysis(['main.py', 
			  'utilsDigits.py',
			  'utilsLine.py',      #此处写需要封装的多个.py文件,如果.py文件与.spec不在同一个文件下,则需在.py文件前添加路径
			  'config.py'],
			  pathex = ['C:\\Users\\admin\\Desktop\\chishui'],
				binaries = [('D:\\Anaconda3\\envs\\tensorflow\\python.exe','bin')],#此处放置的是代码运行时,所调用的依赖,如OpenCV、tensorflow等
				datas = [('C:\\Users\\admin\\Desktop\\chishui\\004.mp4','.')],#此处放置的是代码运行时所调用的数据文件
				hiddenimports = [],
				hookspath = [],
				runtime_hooks = [],
				excludes = [],
				win_no_prefer_redirects = False,
				win_private_assemblies = False,
				cipher = block_cipher)
pyz = PYZ(a.pure, a.zipped_data,cipher = block_cipher)
exe = EXE(pyz,
		 a.scripts,
		 exclude_binaries = True,
		 name = 'main',
		 debug = False,
		 strip = False,
		 upx = True,
		 console = True )
coll = COLLECT(exe,
				a.binaries,
				a.zipfiles,
				a.datas,
				strip = False,
				upx = True,
				name = 'main')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

Analysis:元组中放置的是需要封装的多个python文件,python文件要放置在第一个列表中,若spec文件与需要封装的python文件不在同一个目录中,还需在数组的python文件前添加详细目录;
pathex:路径写环境变量,也就是你需要封装的工程的路径;
binaries:这个列表的路径放置的是你代码运行时。所调用的环境或者依赖,例如你配置的OpenCV、tensorflow等;如果不需要调用这些依赖,空列表也可以运行;
datas:这个列表中放置的是代码运行时调用的数据的路径,列表中第一个引号中放置数据路径,第二个引号写数据类型;如下:

数据书写格式如下:

datas =
 [('C:\\Users\\admin\\Desktop\\chishui\\004.mp4','.')]  
  • 1
  • 2

3.生成exe文件
首先,需在pycharm环境中安装pyinstaller插件,打开cmd,将路径调至.spec文件的目录下,输入以下代码

pyinstaller -D  xxx.spec
  • 1

xxx是由自己设置spec文件的名字;
运行结束后生成dist文件夹,在文件夹中找到xxx.exe文件运行,即可。
3.1封装单个py文件执行代码

pyinstaller -F xxx.py
  • 1

4.生成exe文件后需注意的问题
运行exe文件后只出现命令提示框,没有运行结果,可能的原因调用的代码或文件不再同一个文件夹下,由于生成的exe文件和调用的依赖和数据在同一个文件夹下,但代码中可能有文件夹目录,但exe找不到文件夹,调用不到数据。
解决方法:在python代码中调用数据的地址目录删除,只留数据名称,同时,还需将数据与python代码放置在同一文件夹下。
5.总结
以上是我自己在打包多个python文件时,所遇到的一些问题,可能有些专业名词说得不太对,还望大家见谅!!!

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号