Author | Blog | |
---|---|---|
冬酒暖陽 | mailto:1067764354@qq.com | 博客:www.lifepoem.cn |
--add-data "欲打包的源文件路徑(能夠是相對路徑,也能夠是絕對路徑);.(打包後對應的程序內的路徑,一個.表明打包至程序運行時根目錄)"
--add-data 參數 能夠屢次使用,注意格式爲引號裏面有一個文件名,有一個分號,一個點。
例: pyinstaller -F --add-data '.\32x32.ico;.' '.\main.py'
複製代碼
經過命令生成 spec 文件python
pyi-makespec filename
# pyi-makespec 後跟欲打包python文件
複製代碼
pyi-makespec -F filename
# 與pyinstaller 打包單文件相同,均使用 -F 參數
# pyi-makespec -F 後跟欲打包python文件
複製代碼
修改生成的 spec 文件git
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(['main.py'],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
# 在 a 中 datas 列表內添加以下格式配置項
# ('欲打包的源文件路徑(相對、絕對都可)', '.(打包後對應的程序內的路徑,一個.表明打包至程序運行時根目錄)')
# 例如:
# a = Analysis(['main.py'],
# pathex=[],
# binaries=[],
# datas=[('.\\excel.ico', '.')],
# hiddenimports=[],
# hookspath=[],
# runtime_hooks=[],
# excludes=[],
# win_no_prefer_redirects=False,
# win_private_assemblies=False,
# cipher=block_cipher,
# noarchive=False)
複製代碼
注意:路徑中須要用 雙反斜槓!!github
使用該 spec 文件打包shell
pyinstaller ***.spec
複製代碼
# 先獲取當前運行時臨時目錄路徑
if getattr(sys, 'frozen', None):
basedir = sys._MEIPASS
else:
basedir = path.dirname(__file__)
# 使用 os.path.join() 方法,將 臨時目錄路徑與文件相對路徑拼接
with open(path.join(basedir, 'file.txt'), 'r') as fp:
pass
複製代碼