(新人学习记录)
打包原因:
在电脑上运行.exe文件时无需下载python与所需用到的相应库
打包方式:
- cmd所想要打包的py文件(一般为主程序)地址下
- Pyinstaller -F xx.py(首先需下载Pyinstaller包)
详细可参考: (32条消息) pyinstaller打包python文件成exe(原理.安装.问题)_清华使者的博客-CSDN博客
pyinstaller打包原理:
pyinstaller将您的数据解压缩到一个临时文件夹中,并将此目录路径存储在_MEIPASS2
环境变量中
详细可参考:使用PyInstaller捆绑数据文件(--onefile)_编程黑洞网
.exe和.py的文件运行路径
由于打包成的.exe文件在运行时对文件路径的引用将会发生变化,因此对于文件路径的引用需要 进行判断说明,以下代码无论在IDE中运行或.exe运行都将不会出错(可直接使用)
- 该代码放于主程序
- 通过if语句对.py文件和.exe文件的路径进行返回
#所使用模块:sys,os
if hasattr(sys, '_MEIPASS'):
pypath = os.path.dirname(os.path.realpath(sys.executable))#返回文件路径
print("The one is:"+pypath)
else:
pypath, filename = os.path.split(os.path.abspath( __file__))#返回ide地址
print("The two is:"+pypath)
pypathlevel0 = os.path.dirname(pypath)
#打包完的文件,pypathlevel0为上一级目录,pypath为该.exe文件的所在目录
#未打包的文件,pypathlevel0为上一级目录,pypath为该.py文件的所在目录