NX 系统环境 python3.6 部署 PPOCR 报错记录

NX 系统环境 python3.6 部署 PPOCR 报错记录

前言(这环境,就硬配)

  • 问:为什么要用系统环境,不用 conda?
  • 答:因为 conda 的 ARM 端 python 最低只支持 3.7,而 paddlepaddle 提供的 Jetpack4.4 的 whl 只有 python3.6。

  • 问:干嘛非要用 Jetpack4.4
  • 答:绝影里就这版本,我 XXX 没办法。

  1. apt get install pythonXXX 的 对应 python site-packages 在用户目录下的~/.local/lib/python3.6/site-packages中,pip 安装的包都在这里。
  2. /usr/lib/python3/dist-packages/这个路径下,NX自带了很多配置的包。

错误记录

ImportError: cannot import name ‘_validate_lengths’

该错误出现在 最后调用检测程序时

错误原因:numpy版本不匹配,无法导入_validate_lengths

解决方法:

NX 系统环境 python3.6 部署 PPOCR 报错记录_第1张图片

根据提示,进入 arraycrop.py 中,看到

NX 系统环境 python3.6 部署 PPOCR 报错记录_第2张图片
记着是以下两个函数解除注释

  • def _normalize_shape(ndarray, shape, cast_to_int=True):
  • def _validate_lengths(narray, number_elements):

安装scikit-image

scikit-image这个库就离谱,在python3.7里安装屁事没有,在python3.6里安装,要么进度条一直转着,像是网不好的样子,反复确定换了源也没反应。

要么就是全片爆红,安装过程会不断地从scikit-image的高版本一路下载到低版本,然后每次安装都报错,大概类似于

  ERROR: Command errored out with exit status -4:
   command: /usr/bin/python3.6 /home/ysc/.local/lib/python3.6/site-packages/pip/_vendor/pep517/in_process/_in_process.py get_requires_for_build_wheel /tmp/tmp92nk3ap8
       cwd: /tmp/pip-install-ss7tgzhb/scikit-image_fc90552b1a214ccda82d1cae81fcd1bf
  Complete output (0 lines):


 ERROR: Command errored out with exit status -4:
   command: /usr/bin/python3.6 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-ss7tgzhb/scikit-image_ebfb42b343c04f779c0756a132dd2855/setup.py'"'"'; __file__='"'"'/tmp/pip-install-ss7tgzhb/scikit-image_ebfb42b343c04f779c0756a132dd2855/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-hy6epp37
       cwd: /tmp/pip-install-ss7tgzhb/scikit-image_ebfb42b343c04f779c0756a132dd2855/
  Complete output (0 lines):


WARNING: Discarding https://pypi.tuna.tsinghua.edu.cn/packages/3d/b3/b9fdd4dead798cf9c654f2ffee24caa8e398ee27921914539d1e5525b754/scikit-image-0.17.1.tar.gz#sha256=1e2e2cf2572549bdb20b88a0f0ac275eea9f04f78b2b6973afdc3f329a73c75c (from https://pypi.tuna.tsinghua.edu.cn/simple/scikit-image/) (requires-python:>=3.6). Command errored out with exit status -4: python setup.py egg_info Check the logs for full command output.
  Using cached https://pypi.tuna.tsinghua.edu.cn/packages/07/ed/58a5157aa484c6aa4e33d4190fa235ce0c4a78010ddf592af4fc257b539f/scikit-image-0.16.2.tar.gz (28.9 MB)
  Preparing metadata (setup.py) ... error
  ERROR: Command errored out with exit status -4:
   command: /usr/bin/python3.6 -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-lm6zqk4n/scikit-image_7ff52823308443e9981c7c523c3952a3/setup.py'"'"'; __file__='"'"'/tmp/pip-install-lm6zqk4n/scikit-image_7ff52823308443e9981c7c523c3952a3/setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-um2kxfx9
       cwd: /tmp/pip-install-lm6zqk4n/scikit-image_7ff52823308443e9981c7c523c3952a3/
  Complete output (0 lines):

简直离大谱。。。

解决方法:
最后大概也忘了是怎么解决的了
尝试了N种方法
如下:

一、
sudo pip install scikit-image --user

二、
sudo pip install --ignore-installed --user scikit-image

三、

  • 使用pip3 install scikit-image 安装一直报错,可能是通过pip安装要依赖numpy,scipy等包,而且与版本有关系,可能会因为这些原因导致一直安装不上,那么需要对其进行修正,可以使用命令进行修复:
    sudo apt-get install python3-skimage
  • 安装成功。
    假如发现安装的版本太低:
    运行命令:
    pip install -U scikit-image
    更新包版本

证书签名过期

sudo apt-get update报错,如下:

无法安全地用该源进行更新,所以默认禁用该源
校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。
下列签名无效

问题原因:
/etc/pki/tls/certs/ca-bundle.crt 文件存储了各大证书颁发证的根证书交叉文件。
curl 访问https网站时,会比对这个文件里的根证书。如果这个文件过老,那就是有新的根证书未加入到这个文件里,导致curl无法正常访问https网站。
所以,你要么更新这个包(文件),要么可以选择手动添加证书进去,当然,你可以使用 curl -k 跳过证书验证。

解决方法:

  • 方法1:sudo apt-get install ca-certificates
  • 方法2:pkgs.org,自行下载deb格式,并dpkg安装

ModuleNotFoundError: No module named ‘apt_pkg’

  • 安装
    sudo apt install python3-apt
  • 进入包文件目录
    cd /usr/lib/python3/dist-packages/
  • 改名字
    cp apt_pkg.cpython-36m-x86-64-linux-gnu.so.so apt_pkg.so

非法指令 (核心已转储)

1.短暂解决:
在命令行输入

export OPENBLAS_CORETYPE=ARMV8
也可以采用增加系统变量方法,可以进行全局修改。

将“export OPENBLAS_CORETYPE=ARMV8”加入到“~/.bashrc”中

本文由mdnice多平台发布

你可能感兴趣的:(Arm端部署,python)