PyInstaller“ValueError:太多值无法解压”

2024-03-25

pyinstaller 版本 3.2

操作系统:win10


我的 python 脚本在 Winpython Python 解释器中运行良好。

但是当我使用 Pyinstaller 包时,python 脚本包含 caffe 模块, 我将面临的问题是:“您可以使用以下命令加载 I/O 插件skimage.io.use_plugin” https://stackoverflow.com/questions/34761862/pyinstaller-you-may-load-i-o-plugins-with-the-skimage-io-use-plugin

我按照上面的答案修复我的规范文件(挂钩文件??)。我收到以下错误:(ValueError:太多值无法解压)

Traceback (most recent call last):
File "d:\python\winpython-64bit-2.7.10.3\python-2.7.10.amd64\lib\runpy.py", line 162, in _run_module_as_main
"__main__", fname, loader, pkg_name)
File "d:\python\winpython-64bit-2.7.10.3\python-2.7.10.amd64\lib\runpy.py", line 72, in _run_code
exec code in run_globals
File "D:\Python\WinPython-64bit-2.7.10.3\python-2.7.10.amd64\Scripts\pyinstaller.exe\__main__.py", line 9, in <module>
File "d:\python\winpython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\PyInstaller\__main__.py", line 90, in run
run_build(pyi_config, spec_file, **vars(args))
File "d:\python\winpython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\PyInstaller\__main__.py", line 46, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File "d:\python\winpython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\PyInstaller\building\build_main.py", line 788, in main
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
File "d:\python\winpython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\PyInstaller\building\build_main.py", line 734, in build
exec(text, spec_namespace)
File "<string>", line 16, in <module>
File "d:\python\winpython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\PyInstaller\building\build_main.py", line 223, in __init__
for name, pth in format_binaries_and_datas(datas, workingdir=spec_dir):
File "d:\python\winpython-64bit-2.7.10.3\python-2.7.10.amd64\lib\site-packages\PyInstaller\building\utils.py", line 440, in format_binaries_and_datas
for src_root_path_or_glob, trg_root_dir in binaries_or_datas:
ValueError: too many values to unpack

这是我的规格文件:

# -*- mode: python -*-
block_cipher = None

a = Analysis(['Demo_GenderAge.py'],
         pathex=['D:\\Work\\test_code\\PyInstaller_Test_caffe'],
         binaries=None,
         datas=["skimage.io._plugins"],
         hiddenimports=['skimage.io._plugins'],
         hookspath=[],
         runtime_hooks=[],
         excludes=[],
         win_no_prefer_redirects=False,
         win_private_assemblies=False,
         cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
         cipher=block_cipher)
exe = EXE(pyz,
      a.scripts,
      exclude_binaries=True,
      name='Demo_GenderAge',
      debug=False,
      strip=False,
      upx=True,
      console=True )
coll = COLLECT(exe,
           a.binaries,
           a.zipfiles,
           a.datas,
           strip=False,
           upx=True,
           name='Demo_GenderAge')

有人可以告诉我如何解决它吗?


The datas数组需要元组,而不是字符串。来自pyinstaller 文档 https://pyinstaller.readthedocs.io/en/stable/spec-files.html#adding-data-files:

数据文件列表是元组列表。每个元组有两个值, 两者都必须是字符串:

  • 第一个字符串指定当前系统中的一个或多个文件。
  • 第二个指定运行时包含文件的文件夹的名称。

我想将上述信息应用到您的代码中会导致以下结果:

...    
datas=[("skimage.io._plugins", '.')],
...

我希望这有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyInstaller“ValueError:太多值无法解压” 的相关文章

随机推荐

  • 获取 ngComponentOutlet 的引用

    我正在使用 ngComponentOutlet 动态创建一个组件 听上去像 import Component NgModule from angular core import BrowserModule from angular plat
  • 实际上如何使用 C 库?

    我确信这个问题已经被问过很多次了 但我无法弄清楚 耐心听我说 因此 当您下载库时 您会得到一堆 c 和 h 文件 以及许多其他内容 现在假设您想使用这个库编写一个程序 我将所有 h 文件复制到我的项目目录中 它只是无法编译 太好了 然后我将
  • 如何在 Python 中将 '%' 替换为 '\x'

    我的目标是将base64编码的 EB 字符串转换为 xEB 然而 一尝试 我发现这很难 并且通过 string replace 和 re sub 都无法实现 我的代码失败如下 target EB AF B8 EB 9F AC EC 8A A
  • 如何使用同一个 R 包的多个版本?

    为了能够比较包的两个版本 我需要能够选择加载哪个版本的包 R 的包系统默认设置为覆盖现有包 以便您始终拥有最新版本 我该如何覆盖这种行为 到目前为止我的想法是 我可以获取包源 编辑描述以给出不同的名称 并实际上构建两个不同的包 不过 我宁愿
  • 谁能告诉我 python 中的 pika 和 kombu 消息传递库有什么区别?

    我想在我的应用程序中使用消息传递库与rabbitmq交互 谁能解释一下 pika 和 kombu 库之间的区别吗 Kombu 和 pika 是两个不同的 Python 库 它们从根本上服务于相同的目的 向消息代理发布消息和使用消息代理发送消
  • 检查谷歌地图应用程序是否安装在react-native iOS中

    我尝试使用 npm 模块react native check app install但我无法实现 结果总是错误的 还尝试过react native installed apps获取手机中安装的应用程序列表 但这始终返回空列表 您确定声明了
  • Laravel 所有输入字段均为必填

    我有大约 50 个输入字段 它们都是必需的 有没有简单的方法来检查它们是否都已设置 所以我不必手动将每个字段放入我的模型中 验证规则为 必需 我知道这已经晚了 但我编写了一个简单的函数来为自己解决这个问题 foreach request g
  • 以网格格式绘制脉冲响应函数

    我已经从 R 中的 VAR 模型运行了以下脉冲响应函数 debtarg 1 lt irf var est debt arg response pfdebt arg impulse sp n ahead 40 ortho TRUE boot
  • Java Web 开发的学习路线?

    我继承了一个大型Java Web项目 我必须对其进行一些修改 在基础知识方面我是一个相当称职的Java程序员 但我以前从未做过任何JSP编程或EJB编程 我记得大约 5 年前在大学里做过一些 servlet 编程 但我假设从那时起一切都发生
  • 访问控件值的最有效方法是什么?

    在我必须访问控件的值的两个选择中 哪个是最有效的 getComponent ControlName getValue or dataSource getItemValue FieldName 我发现有时getComponent似乎没有返回当
  • 使用 Python 查找 Mac UUID/序列号

    基本上 我计划将计算机的 UUID 序列号与它运行的密钥绑定起来 在 Windows 上 我发现获取 UUID 很容易 但我很难为 Mac 获取任何东西 有什么解决办法吗 MacOS 有一个内置程序用于访问此信息 您可以使用以下命令获取它
  • 调整工作表演示文稿 SwiftUI 的大小

    我正在尝试以小尺寸呈现模型视图 有什么办法可以调整大小吗 Button Present self presentingModal true padding sheet isPresented presentingModal content
  • 将图像从 api url 加载到 Angular 5 组件中

    我有一个 html 结构如下的组件 img src img 并在打字稿中 constructor private loginService LoginService this img null this loadImage loadImag
  • 如何解决此问题:应用程序启用 YouTube 视频的后台播放

    我制作了一个播放 YouTube 视频的phonegap 应用程序 谷歌已将其从 Play 商店下架 因为 该应用程序可以在后台播放 YouTube 视频 我不知道这意味着什么 有人可以帮我解决这个问题 以便视频不会在后台播放吗 Thank
  • Windows 服务中使用 App.Config 的 WCF 命名管道

    我烦了 好的 这是错误 net pipe localhost MyIpcAppToService 上没有侦听端点可以接受该消息 这通常是由不正确的地址或 SOAP 操作引起的 有关更多详细信息 请参阅 InnerException 如果存在
  • 无法在 makefile 中调用 bash 函数

    我的印象是我可以在 GNU makefile 中调用 bash 函数 但似乎是错误的 这是一个简单的测试 我定义了这个函数 gt type lsc lsc is a function lsc ls color auto color tty
  • java.lang.IllegalStateException:无法获取表面

    我正在尝试创建一个应用程序 使用户能够录制其智能手机的屏幕 这是我的起始代码 import android content Context import android content Intent import android hardw
  • 在 Azure 中,为什么 AuthClientId 也称为应用程序 Id?

    我发现 Azure 中的应用程序注册非常令人困惑 在我的在这里提问 https stackoverflow com questions 50921099 invalid provider type specified cryptograph
  • 获取登录用户 JavaFX 和 MySQL

    我正在开发我的项目 其中有用户界面 用户必须在登录阶段的文本字段中输入用户名和密码 这会将他移至下一个阶段 我想知道当前登录的是哪个用户 这两个阶段有单独的控制器 我尝试在登录阶段创建 setter 和 getter 将用户设置为他在用户名
  • PyInstaller“ValueError:太多值无法解压”

    pyinstaller 版本 3 2 操作系统 win10 我的 python 脚本在 Winpython Python 解释器中运行良好 但是当我使用 Pyinstaller 包时 python 脚本包含 caffe 模块 我将面临的问题