python 文件打包成.exe文件

python 文件打包成.exe文件

最近遇到个同事的需求,需要将大量的ppt、word文件转换为pdf文件,但是她电脑上没有python文件的运行环境,就为其打包成了一个简单的.exe文件,这里简单介绍一下.py转换成.exe文件的方式:

第一步:安装pyinstaller

win+R打开运行,输入cmd打开命令行窗口,输入pip install pyinstaller,命令行输出successfully表示成功。

 

第二步:生成exe文件

一、单个.py文件

(1)直接生成exe文件

在py文件目录下,打开cmd窗口,输入pyinstall -F file/xxx.py(file/xxx.py为文件存储路径),执行成功的话,会在当前目录生成一个dist文件夹,生成的xxx.exe文件在此文件夹下。

生成的xxx.exe文件包含了代码和环境(含代码中使用到的库),这时该文件就可以在其他电脑中使用了。

二、多个.py文件

1、尽量将所有要执行的py文件放在一个大文件夹下(里面允许有多个文件夹)

2、命令行输入pyi-makespec main.py(main.py为Python程序的入口py文件)

3、现在文件夹下生成了一个main.spec文件和两个文件夹

4、编辑main.spec文件,找到a = Analysis(),先修改第一个参数,这里面的列表都必须是py文件


a = Analysis(['pin.py'],

pathex=['F:\\python_ToPDF\\pytest\\pin'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)

如果用到了其他的py文件,就在第一个列表里面加入相应py文件的路径,如果是同级目录下,直接写文件名,如果不在同一个文件下,写完整路径。


a = Analysis(['pin.py', 'cursor_control.py'],

pathex=['F:\\python_ToPDF\\pytest\\pin'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)

 

如果用到了非py文件需要打包,那么找到datas列表,将非py文件的路径与文件夹名写在元组里。

例如:

datas = [('C:\\python_ToPDF\\names','name'),('C:\\python_ToPDF\\imgs','img')]  


datas:

  1. 第一个参数是Python中的非py类型文件的路径
  2. 第二个参数是非py文件保存此资源的文件夹名称,要和路径中的文件夹名称相同。

5、保存文件,在.spec文件路径下打开命令行,输入pyinstaller -D main.spec

6、生成的exe程序在dist文件夹中,dist文件夹里包含了整个项目所需的代码和环境,可以在其他电脑中使用了。

[mark]注意:文件路径统一使用双斜杠(\\)连接[/mark]