Python snapcraft提供';ascii';编解码器可以';t解码位置0处的字节0xd0:序号不在范围内(128)

Python snapcraft提供';ascii';编解码器可以';t解码位置0处的字节0xd0:序号不在范围内(128),python,snapcraft,Python,Snapcraft,我尝试在snap包中编译Qt 5.13,但在启动它时出现以下错误: 'NoneType' object has no attribute 'decode' 我认为这与底层python代码中的一些国际化问题有关,因此尝试更改构建顺序,做了很多其他事情,但每次我们都返回上面的错误 以下是snapcraft文件: name: vcs version: '2.0' summary: VCS GUI description: | Maritime Robotics Vehicle Control S

我尝试在snap包中编译Qt 5.13,但在启动它时出现以下错误:

'NoneType' object has no attribute 'decode'
我认为这与底层python代码中的一些国际化问题有关,因此尝试更改构建顺序,做了很多其他事情,但每次我们都返回上面的错误

以下是snapcraft文件:

name: vcs
version: '2.0'
summary: VCS GUI
description: |
  Maritime Robotics Vehicle Control System GUI
confinement: devmode
base: core18
layout:
   /usr/lib/vcs-gui/plugins:
      bind: $SNAP/usr/lib/vcs-gui/plugins

parts:

  desktop-qt5:
    source: https://download.qt.io/archive/qt/5.13/5.13.2/single/qt-everywhere-src-5.13.2.tar.xz
    plugin: dump
    override-build: |
      snapcraftctl build
      ./configure -opensource -confirm-license -debug -nomake examples  -nomake tests
      make
      make install
    override-prime: |
      locale-gen "en_US.UTF-8"
      update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
      snapcraftctl prime
    build-packages:
      - python
      - locales

  protobuf:
    source: https://github.com/protocolbuffers/protobuf/releases/download/v3.8.0/protobuf-all-3.8.0.tar.gz
    plugin: autotools

  cmake:
    source: https://github.com/Kitware/CMake/releases/download/v3.15.0-rc1/cmake-3.15.0-rc1.tar.gz
    plugin: autotools

  libproj:
    source: http://download.osgeo.org/proj/proj-6.0.0.tar.gz
    plugin: autotools
    build-packages: 
      - libsqlite3-dev
      - sqlite3
      - libgl1-mesa-dev
      - libglu1-mesa-dev

  gdal:
    source: https://github.com/OSGeo/gdal/releases/download/v3.0.0/gdal-3.0.0.tar.gz
    plugin: autotools
    after: [libproj]

  ecc:
    source: https://confluence.ecmwf.int/download/attachments/45757960/eccodes-2.12.5-Source.tar.gz
    plugin: cmake
    configflags: [-DENABLE_FORTRAN=OFF]

  vcs:
    plugin: cmake
    configflags: [-DQt5Core_DIR=/usr/local/Qt-5.13.2/lib/cmake/Qt5Core,-DQt5_DIR=/usr/local/Qt-5.13.2/lib/cmake/Qt5,-DQT_QMAKE_EXECUTABLE=/usr/local/Qt-5.13.2/bin/qmake]
    source: https://github.com/fritzone/Qt-CMake-HelloWorld.git
    after: [protobuf,cmake,libproj,gdal,ecc,desktop-qt5]
    build-packages:
      - git
      - g++
      - make
      - libkml-dev
      - libarmadillo-dev
      - libgeographic-dev
      - libssl-dev
      - libconfig++-dev
      - libxml2-dev
      - libmodbus-dev
      - libev-dev
      - libudev-dev
      - libexiv2-dev
      - libv4l-dev
      - doxygen
      - graphviz
      - libgeotiff-dev
      - libgeos-dev 
      - libpng-dev
      - libbotan-2-dev
    stage-packages:
      - libbotan-2-4
      - libtspi1
      - libkmlconvenience1
      - libkmlbase1
      - libkmlengine1
      - libkmldom1
      - libssl1.0.0
      - libconfig++9v5
      - libxml2
      - libmodbus5
      - libev4
      - libaec0
      - libhdf4-0-alt
      - libsz2
      - libexiv2-14
      - libv4l-0
      - libgeotiff2
      - libsdl2-2.0-0
      - libxcb-xinerama0
      - libarmadillo8
      - libarpack2
      - libsuperlu5
      - libgeos-3.6.2
      - libgeos-c1v5

apps:
  vcs:
    command: bin/desktop-launch bin/vcs
    adapter: full
    command-chain: 
      - bin/desktop-launch
      - bin/vcs
    common-id: vcs-gui.desktop
    desktop: usr/share/applications/vcs-gui.desktop
    environment:
      "DISABLE_WAYLAND": "0"
    plugs: [x11, wayland, desktop, desktop-legacy, opengl, network, home]
以下是我在运行时从中获得的输出:

SNAPCRAFT\u启用\u开发人员\u调试=是SNAPCRAFT\u构建\u环境\u内存=8G SNAPCRAFT--DEBUG

(是的,由于构建Qt时编译器崩溃,它需要大约8GB的内存)

下面是试图构建包的python脚本的stacktrace:

'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)
We would appreciate it if you anonymously reported this issue.
No other data than the traceback and the version of snapcraft in use will be sent.
Would you like to send this error data? (Yes/No/Always/View) [no]: View
Traceback (most recent call last):
  File "/snap/snapcraft/3440/bin/snapcraft", line 11, in <module>
    load_entry_point('snapcraft==3.8', 'console_scripts', 'snapcraft')()
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/core.py", line 1114, in invoke
    return Command.invoke(self, ctx)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/cli/_runner.py", line 103, in run
    snap_command.invoke(ctx)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/cli/_command.py", line 87, in invoke
    return super().invoke(ctx)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/cli/lifecycle.py", line 261, in snap
    _execute(steps.PRIME, parts=[], pack_project=True, output=output, **kwargs)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/cli/lifecycle.py", line 66, in _execute
    lifecycle.execute(step, project_config, parts)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 94, in execute
    executor.run(step, part_names)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 148, in run
    self._handle_step(part_names, part, step, current_step, cli_config)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 162, in _handle_step
    getattr(self, "_run_{}".format(current_step.name))(part)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 237, in _run_prime
    self._run_step(step=steps.PRIME, part=part, progress="Priming")
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 281, in _run_step
    getattr(part, step.name)()
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 795, in prime
    self._do_runner_step(steps.PRIME)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 242, in _do_runner_step
    return getattr(self._runner, "{}".format(step.name))()
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/_runner.py", line 91, in prime
    "override-prime", self._override_prime_scriptlet, self._primedir
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/_runner.py", line 137, in _run_scriptlet
    scriptlet_name, function_call.strip()
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/_runner.py", line 193, in _handle_builtin_function
    function(**function_args)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 807, in _do_prime
    dependency_paths = self._handle_elf(snap_files)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 814, in _handle_elf
    elf_files = elf.get_elf_files(self.primedir, snap_files)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/elf.py", line 576, in get_elf_files
    elf_file = ElfFile(path=path)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/elf.py", line 219, in __init__
    elf_data = self._extract(path)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/elf.py", line 252, in _extract
    interp_section = elf.get_section_by_name(_INTERP)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/elftools/elf/elffile.py", line 94, in get_section_by_name
    for i, sec in enumerate(self.iter_sections()):
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/elftools/elf/elffile.py", line 103, in iter_sections
    yield self.get_section(i)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/elftools/elf/elffile.py", line 83, in get_section
    return self._make_section(section_header)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/elftools/elf/elffile.py", line 288, in _make_section
    name = self._get_section_name(section_header)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/elftools/elf/elffile.py", line 283, in _get_section_name
    return self._file_stringtable_section.get_string(name_offset)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/elftools/elf/sections.py", line 70, in get_string
    return s.decode('ascii')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)
We would appreciate it if you anonymously reported this issue.
“ascii”编解码器无法解码位置0处的字节0xd0:序号不在范围内(128)
如果您匿名报告此问题,我们将不胜感激。
除了回溯和正在使用的snapcraft版本外,不会发送任何其他数据。
是否要发送此错误数据?(是/否/始终/查看)[否]:查看
回溯(最近一次呼叫最后一次):
文件“/snap/snapcraft/3440/bin/snapcraft”,第11行,在
加载入口点(“snapcraft==3.8”,“控制台脚本”,“snapcraft”)()
文件“/snap/snapcraft/3440/lib/python3.5/site packages/click/core.py”,第764行,在调用中__
返回self.main(*args,**kwargs)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/click/core.py”,第717行,在main中
rv=自调用(ctx)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/click/core.py”,调用中第1114行
return命令.invoke(self,ctx)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/click/core.py”,调用中的第956行
返回ctx.invoke(self.callback,**ctx.params)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/click/core.py”,调用中的第555行
返回回调(*args,**kwargs)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/click/decorators.py”,第17行,在新函数中
返回f(获取当前上下文(),*args,**kwargs)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/cli/_runner.py”,第103行,运行中
snap_命令调用(ctx)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/cli/_command.py”,调用中第87行
返回super().invoke(ctx)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/click/core.py”,调用中的第956行
返回ctx.invoke(self.callback,**ctx.params)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/click/core.py”,调用中的第555行
返回回调(*args,**kwargs)
snap中的文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/cli/lifecycle.py”,第261行
_执行(steps.PRIME,parts=[],pack_project=True,output=output,**kwargs)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/cli/lifecycle.py”,第66行,在
执行(步骤、项目配置、部件)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/internal/lifecycle/_runner.py”,第94行,在execute中
执行者运行(步骤,部分名称)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/internal/lifecycle/_runner.py”,第148行,运行中
self.\u handle\u步骤(部分名称、部分、步骤、当前步骤、cli\u配置)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/internal/lifecycle/_runner.py”,第162行,在步骤中
getattr(self,“{}”.format(current_step.name))(部分)
文件“/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_-runner.py”,第237行,在_-run_-prime中
自运行步骤(步骤=steps.PRIME,部分=part,progress=“Priming”)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/internal/lifecycle/\u runner.py”,第281行,在运行步骤中
getattr(部分,步骤名称)()
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/internal/pluginhandler/___init__.py”,第795行,素数
self.\u do\u runner\u步骤(steps.PRIME)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/internal/pluginhandler/___init__.py”,第242行,在“do_runner”步骤中
返回getattr(self._runner,“{}”.format(step.name))()
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/internal/pluginhandler/_runner.py”,第91行,大写
“覆盖素数”,self.\u覆盖素数\u scriptlet,self.\u primedir
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/internal/pluginhandler/_runner.py”,第137行,在脚本中
scriptlet_名称、函数_调用.strip()
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/internal/pluginhandler/\u runner.py”,第193行,内置函数
函数(**函数参数)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/internal/pluginhandler/________.py”,第807行,在
依赖项路径=self.\u句柄\u elf(快照文件)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/internal/pluginhandler/___init__.py”,第814行,在
elf_files=elf.get_-elf_文件(self.primedir、snap_文件)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/internal/elf.py”,第576行,在get_elf_文件中
elf_文件=elf文件(路径=路径)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/internal/elf.py”,第219行,在__
elf_数据=自我提取(路径)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/snapcraft/internal/elf.py”,第252行,摘录
interp\u section=elf.get\u section\u by\u name(\u interp)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/elftools/elf/elffile.py”,第94行,按名称获取部分
对于枚举中的i,sec(self.iter_sections()):
文件“/snap/snapcraft/3440/lib/python3.5/site packages/elftools/elf/elffile.py”,iter_章节第103行
屈服自我获得部分(i)
文件“/snap/snapcraft/3440/lib/python3.5/site packages/elftools/elf/elffile.py”,第83行,在get_部分
返回自我。生成部分(部分)
'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)
We would appreciate it if you anonymously reported this issue.
No other data than the traceback and the version of snapcraft in use will be sent.
Would you like to send this error data? (Yes/No/Always/View) [no]: View
Traceback (most recent call last):
  File "/snap/snapcraft/3440/bin/snapcraft", line 11, in <module>
    load_entry_point('snapcraft==3.8', 'console_scripts', 'snapcraft')()
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/core.py", line 764, in __call__
    return self.main(*args, **kwargs)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/core.py", line 717, in main
    rv = self.invoke(ctx)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/core.py", line 1114, in invoke
    return Command.invoke(self, ctx)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/cli/_runner.py", line 103, in run
    snap_command.invoke(ctx)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/cli/_command.py", line 87, in invoke
    return super().invoke(ctx)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/core.py", line 956, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/click/core.py", line 555, in invoke
    return callback(*args, **kwargs)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/cli/lifecycle.py", line 261, in snap
    _execute(steps.PRIME, parts=[], pack_project=True, output=output, **kwargs)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/cli/lifecycle.py", line 66, in _execute
    lifecycle.execute(step, project_config, parts)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 94, in execute
    executor.run(step, part_names)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 148, in run
    self._handle_step(part_names, part, step, current_step, cli_config)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 162, in _handle_step
    getattr(self, "_run_{}".format(current_step.name))(part)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 237, in _run_prime
    self._run_step(step=steps.PRIME, part=part, progress="Priming")
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/lifecycle/_runner.py", line 281, in _run_step
    getattr(part, step.name)()
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 795, in prime
    self._do_runner_step(steps.PRIME)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 242, in _do_runner_step
    return getattr(self._runner, "{}".format(step.name))()
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/_runner.py", line 91, in prime
    "override-prime", self._override_prime_scriptlet, self._primedir
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/_runner.py", line 137, in _run_scriptlet
    scriptlet_name, function_call.strip()
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/_runner.py", line 193, in _handle_builtin_function
    function(**function_args)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 807, in _do_prime
    dependency_paths = self._handle_elf(snap_files)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/pluginhandler/__init__.py", line 814, in _handle_elf
    elf_files = elf.get_elf_files(self.primedir, snap_files)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/elf.py", line 576, in get_elf_files
    elf_file = ElfFile(path=path)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/elf.py", line 219, in __init__
    elf_data = self._extract(path)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/snapcraft/internal/elf.py", line 252, in _extract
    interp_section = elf.get_section_by_name(_INTERP)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/elftools/elf/elffile.py", line 94, in get_section_by_name
    for i, sec in enumerate(self.iter_sections()):
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/elftools/elf/elffile.py", line 103, in iter_sections
    yield self.get_section(i)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/elftools/elf/elffile.py", line 83, in get_section
    return self._make_section(section_header)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/elftools/elf/elffile.py", line 288, in _make_section
    name = self._get_section_name(section_header)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/elftools/elf/elffile.py", line 283, in _get_section_name
    return self._file_stringtable_section.get_string(name_offset)
  File "/snap/snapcraft/3440/lib/python3.5/site-packages/elftools/elf/sections.py", line 70, in get_string
    return s.decode('ascii')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)
We would appreciate it if you anonymously reported this issue.
return s.decode('UTF-8') is else ''
<the python interpreter bundled with snap> -m pip install --upgrade pyelftools