NX 系统环境 python3.6 部署 PPOCR 报错记录
前言(这环境,就硬配)
- 问:为什么要用系统环境,不用 conda?
- 答:因为 conda 的 ARM 端 python 最低只支持 3.7,而 paddlepaddle 提供的 Jetpack4.4 的 whl 只有 python3.6。
- 问:干嘛非要用 Jetpack4.4
- 答:绝影里就这版本,我 XXX 没办法。
- apt get install pythonXXX 的 对应 python site-packages 在用户目录下的
~/.local/lib/python3.6/site-packages
中,pip 安装的包都在这里。 - 在
/usr/lib/python3/dist-packages/
这个路径下,NX自带了很多配置的包。
错误记录
ImportError: cannot import name ‘_validate_lengths’
该错误出现在 最后调用检测程序时
错误原因:numpy版本不匹配,无法导入_validate_lengths
解决方法:
根据提示,进入 arraycrop.py 中,看到
记着是以下两个函数解除注释
- 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”中