D:\path\Anaconda3\envs\<pkg>\Scripts\
打包的时候会看到:
pip install pyinstaller
import代码
文件需要放在 D:\path\Anaconda3\envs\<pkg>\Lib\site-packages
内
代码内所有的资源路径需要调用以下函数获取,防止打包的时候找不到
# 生成资源文件目录访问路径
def resource_path(relative_path):
if getattr(sys, 'frozen', False): # 判断sys中是否存在frozen变量,即是否是打包程序
base_path = sys._MEIPASS # sys._MEIPASS在一些编辑器中会报错,不用理会
else:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
参考:https://blog.csdn.net/tm_yuyue/article/details/130472040
激活虚拟环境,执行打包
Pyinstaller -F -w -i xlogo.ico main.py
几百行代码,打包后是30M,还是比较大
main.spec
文件
修改pathex=[r'D:\gitcode\Python_learning\qt\multiply_show']
项目路径
修改datas=[('xlogo.ico', './'), ('qrcode_for_michael.jpg', './') ]
元组内容是(文件相对路径,文件的目录)
# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
a = Analysis(
['main.py'],
pathex=[r'D:\gitcode\Python_learning\qt\multiply_show'],
binaries=[],
datas=[('xlogo.ico', './'),
('qrcode_for_michael.jpg', './')
],
hiddenimports=[],
hookspath=[],
hooksconfig={},
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)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='main',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=False,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
icon=['xlogo.ico'],
)
再执行 pyinstaller main.spec
这是第一个打包制作的电脑小程序,记录一下。
程序下载github
地址 https://github.com/kobe24o/multiplication_calculation/releases
程序演示视频:
使用python的turtle包进行乘法动画演示