Pyinstaller打包报错小结

 更新时间:2024年02月19日 10:02:08   作者:一个失落的梦s  
本文主要介绍了Pyinstaller打包报错小结,详细的介绍了5种错误的解决方法,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧

问题目录

1.Pyinstaller打包exe文件,执行后提示缺失yaml,csv,dll等资源文件。
2.打包后运行提示 WARNING: file already exists but should not: C:\Users\ADMINI~1\AppData\Local\Temp_MEI130922\torch_C.cp38-win_amd64.pyd。
3.运行exe闪退。
4.(ModuleNotFoundError: No module named 'tensorflow_core.python及FileNotFoundError:No such file or directory)。
5.pyimod04_ctypes.install..PyInstallerImportError: Failed to load dynlib/dll ‘C:\Users\Lenovo\AppData\Local\Temp\_MEI209562\MvCameraControl.dll’. Most likely this dynlib/dll was not found when the application was frozen.

解决方法

问题一:

pyinstaller -F main.py 

打包后(我是在conda环境里面打包的,据说打包效果好。当然也可以用pycharm里面用Terminal命令行),会自动打包main.py文件引用的所有.py文件(仅限py文件),其他的资源文件需要在生成的main.spec文件中手动导入。

a = Analysis(
    ['open_camera_main.py'],
    pathex=[],
    binaries=[],
    datas=[
    **('..\\ultralytics\\yolo\\cfg\\default.yaml', 'ultralytics\\yolo\\cfg'),
     ('C:\\Program Files (x86)\\Common Files\\MVS\Runtime\\Win64_x64','.'),
     ('..\\best.pt','.'),
    ],**
    hiddenimports=[],
    hookspath=[],
    hooksconfig={},
    runtime_hooks=[],
    excludes=[],
    win_no_prefer_redirects=False,
    win_private_assemblies=False,
    cipher=block_cipher,
    noarchive=False,
)

例如,datas[]第一个配置格式 (‘path’ ,‘path’)分别是本地的路径(可以用绝对路径,这点无所谓)和exe运行后的虚拟路径,‘.’就是将资源文件放在根目录下,并且本文引用的第二个data,可以将一个文件夹全部引用。第三个是训练好的模型文件。

问题二:pyinstaller工具内部bug据说,解决方法也很简单,就是在生成的main.spec文件中复制以下代码。(我是提示了两次,具体我也没明白,直接写了两个函数),说白了就是跳过报错。

for d in a.datas:
	if 'cp38-win_amd64.pyd' in d[0]:
		a.datas.remove(d)
		break
for d in a.datas:
	if 'cp38-win_amd64.pyd' in d[0]:
		a.datas.remove(d)
		break

问题三:在生成的main.spec文件中将console赋值True,这样可以在exe运行时查看报错。(当然打包之前也可以直接-c打包,不过后期偷懒)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.zipfiles,
    a.datas,
    [],
    name='main',
    **debug=True,** 可以debug
    bootloader_ignore_signals=False,
    strip=False,
    **upx=True,**  打包用的
    upx_exclude=[],
    runtime_tmpdir=None,
    **console=True,**   
    disable_windowed_traceback=False,
    argv_emulation=False,
    target_arch=None,
    codesign_identity=None,
    entitlements_file=None,
)

问题四:打包的时候会遇到很多module和包,或者FileNotFoundError:No such file or directory。很暴力的方法就是在生成的dist文件夹下边将这些资源文件直接复制进去即可。讲究一点的话,还是查看本地的环境是否配置了资源文件。

问题五:dll资源我放在data里面,显示错误加载,然后我在代码里面修改了引用语句,解决了

MvCamCtrldll = os.path.join(os.getcwd(), "MvCameraControl.dll")

之前用的:

 MvCamCtrldll = WinDLL("MvCameraControl.dll")

Tips:1.据说用conda虚拟环境打包效果会更好。
2.还有就是打包之前运行 pyinstaller -F main.py 可能会提示一些错误,例如a/b/c/路径下面没有**.yaml文件,我们需要这样打包。

 pyinstaller -F main.py  --add-data=~/project/config/config.yaml**;**a/b/c/

到此这篇关于Pyinstaller打包报错小结的文章就介绍到这了,更多相关Pyinstaller打包报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • Python简易图形界面库easygui对话框整理大全

    Python简易图形界面库easygui对话框整理大全

    这篇文章主要给大家介绍了关于Python简易图形界面库easygui对话框的相关资料,EasyGUI是一个用Python编写的非常简易的GUI编程模块,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • 如何利用python脚本自动部署k8s

    如何利用python脚本自动部署k8s

    这篇文章主要介绍了利用python脚本自动部署k8s的方法,本文通过脚本代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • Python从wsgi导入失败的问题解决方法

    Python从wsgi导入失败的问题解决方法

    本文主要介绍了Python从wsgi导入失败的问题解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-04-04
  • 在Python中的Django框架中进行字符串翻译

    在Python中的Django框架中进行字符串翻译

    这篇文章主要介绍了在Python中的Django框架中进行字符串翻译的一些初步方法,Django中还提供了待翻译字符串检测工具,需要的朋友可以参考下
    2015-07-07
  • Python中常见的反爬机制及其破解方法总结

    Python中常见的反爬机制及其破解方法总结

    今天给大家带来的文章是关于Python的相关知识,文章围绕着Python中常见的反爬机制及其破解方法展开,文中有非常详细的介绍,需要的朋友可以参考下
    2021-06-06
  • 使用Python和python-pptx构建Markdown到PowerPoint转换器

    使用Python和python-pptx构建Markdown到PowerPoint转换器

    在这篇博客中,我们将深入分析一个使用 Python 开发的应用程序,该程序可以将 Markdown 文件转换为 PowerPoint 演示文稿,我们将探讨代码结构、功能和关键组件,并解决一个特定的 bug,需要的朋友可以参考下
    2025-03-03
  • python如何通过注册表动态管理组件

    python如何通过注册表动态管理组件

    使用注册表的主要优势是可以在运行时动态创建对象,从而实现高度可配置和可扩展的设计,这篇文章主要介绍了python如何通过注册表动态管理组件,需要的朋友可以参考下
    2024-05-05
  • python命令行执行方法及技巧分享

    python命令行执行方法及技巧分享

    这篇文章主要介绍了Python编程中使用命令行工具的基本操作和进阶技巧,通过编写Python脚本,理解Python解释器,以及在命令行中执行脚本,可以实现数据处理和系统任务的自动化,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-04-04
  • Python的type函数结果你知道嘛

    Python的type函数结果你知道嘛

    这篇文章主要为大家介绍了Python的type函数结果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • pytorch visdom安装开启及使用方法

    pytorch visdom安装开启及使用方法

    这篇文章主要介绍了pytorch visdom安装开启及使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04

最新评论