我理解的一般性的一个完整项目会包含代码、资源文件、本地数据库,我的目标是打包成一个exe文件,最终结果尽可能简洁。为达到这样一个目的,需要以下几个步骤:
1. 项目中引用资源、调用本地数据库的路径的设置要有技巧
1.1 将资源文件夹和本地数据库文件夹直接设置在项目根目录下,假设资源文件夹为src, 本地数据库文件夹为 data
1.2 在项目根目录下新建一个setting.py文件,在里面定义项目根目录常量,同时定义资源目录常量和数据库路径常量
import os
ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
DB_DIR = ROOT_DIR + 'data' + os.path.sep
SRC_DIR = ROOT_DIR + 'src' + os.path.sep
1.3 在打包时,将ROOT_DIR赋值为空字符串
import os
# ROOT_DIR = os.path.dirname(os.path.abspath(__file__))
ROOT_DIR = ‘’
DB_DIR = ROOT_DIR + 'data' + os.path.sep
SRC_DIR = ROOT_DIR + 'src' + os.path.sep
2. 打包过程
2.1 打开cmd, cd 到 项目入口的.py文件,我这里为main.py
2.2 输入 pyinstaller --onefile main.py, 打包的过程花费的时间较长,几分钟到几十分钟,看项目大小
2.3 运行结束后,cmd界面最后一行会有"completed successfully"字样,说明打包完毕
2.4 在main.py所在目录下会出现两个新的文件夹build和dist, build文件夹没有用可以删除,进入dist文件夹,可以看到只有一个main.exe文件
2.5 现在直接双击main.exe可能会报找不到数据库的错误,需要把项目根目录下的src文件夹和data文件夹复制到main.exe所在的目录下,这样就能正常打开
2.6 如果要把生成的软件复制给别人使用就把main.exe、src文件夹、data文件夹放在一个文件夹中复制到别的电脑上,在别的电脑上就能运行。要确保main.exe sec文件夹 data文件夹要在同一文件夹中。
|