python pyinstaller 后报错

写了一个小工具 在 PyCharm 中运行一切正常 但是使用 pyinstaller -F xx.py 输出exe 文件后报错

img

https://www.freesion.com/article/7787146554/?%ra=card
简单粗暴,我就用的这个

打包之后,在脚本文件平级的目录下,应该会出现一个后缀名为.spec的文件,该文件内容大致如下所示。你可以分别尝试在hiddenimports列表或excludes列表中添加tkinter项,保存文件后,运行 pyinstaller file_name.spec,重新打包试试看。file_name是你的.spec文件名。估计hiddenimports有效。

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None


a = Analysis(['pyCalculator_4.py'],
             pathex=['D:\\CSDN\\Column\\wx'],
             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)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='pyCalculator_4',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=False , icon='calculator.ico')

报错说没有tkinter的模块,因为python打包需要的模块需要在Python.exe路径下找,而不是pycharm所以你需要到cmd命令行去pip tkinter

参考下这个,大体的原因是,有些模块是隐藏导入的,但是pyinstaller打包时并未指定,所以执行时找不到此模块,而你这里应该是tkinter这个模块为指定。

提示很明显,就是打包的时候缺少包

你pycharm配置的python路径和你pyinstaller所在的路径,不是同一个。 简单说,你两个使用的不是同一个python版本

大致意思就是说没有tkinter的模块,python打包需要模块,发现当前文件下路径中没有模块,一种可能就是因为pyinstall路径下没有,还有一种可能是版本不匹配。
希望对题主有所帮助!

打包失败了,没有在相应的目录下打包

报错少了这个模块,运行框cmd命令行去pip tkinter

tkinter模块没有打包进去,或者打包进去了但是访问路径不正确

你的python版本是低于3.0的吧?

1 你这个打包脚步写的太单薄了
2 py installer 做的非常好 , 不要怀疑它
3 linux win7 下 我都打包过

可以私聊我 尽量详细一点
打赏没必要

应该是打包的时候没有重新编译导致缺少相关包导致的,重新编译试试