Jetson Nano B01 从零入门笔记系列(二)python环境构建-pycharm安装-pytorch安装

Jetson Nano B01 从零入门笔记系列(二)python环境构建-pycharm安装-pytorch安装Bug与报错

1、前言

时隔N年我居然又回来搞这个了,真是命运弄人。
为了应付万恶甲方的BT需求,只能硬着头皮上了,至少得先把算法移植到板子上

2、virtualenvwrapper安装报错与conda安装

看大部分的攻略都安装的是这个虚拟环境,虽然很想装annaconda,但还是先按攻略做
首先pip安装我就做不了,只能用pip3安装,这个暂且不管,替换成pip3即可

// 虚拟环境安装
sudo -H pip3 install virtualenv virtualenvwrapper

到这先报了一次错,后来莫名其妙消失了,但是装到virtualenvwrapper的时候死活装不下去
老是卡在:

Collecting virtualenvwrapper
  Downloading https://files.pythonhosted.org/packages/c1/6b/2f05d73b2d2f2410b48b90d3783a0034c26afa534a4a95ad5f1178d61191/virtualenvwrapper-4.8.4.tar.gz (334kB)
    100% |████████████████████████████████| 337kB 1.7MB/s

然后就不动弹了,后来查了好久发现了这篇攻略:
https://blog.csdn.net/ramblerviper/article/details/118882897
还是源的问题,需要做以下换源操作

sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pbr
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-deps stevedore
sudo pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --no-deps virtualenvwrapper

然后再安装显示就正常了 :

sudo pip install virtualenvwrapper

好吧最后还是出bug了,没法运行老是显示
python2报错,下次再解决试试

还是决定安装annaconda了
https://blog.csdn.net/YMWM_/article/details/107022521
conda aarch64:https://github.com/Archiconda/build-tools/releases
第一次把包下下来放到板子里居然无法sh,不知道为什么
后来到git上重新下载了一遍,然后重启了下板子莫名其妙又可以安装了,果然重启解决一切问题。

3、pycharm安装

还是想依赖pycharm,于是还得装一下
一开始参考的是这篇文章
https://blog.csdn.net/weixin_45930948/article/details/115600172
此处引用转载一下:
官网下载Pycharm安装包:https://www.jetbrains.com/pycharm/download/#section=linux

// 解压安装包
sudo tar -avxf pycharm-community-2019.2.tar.gz

由于直接安装一般都会报JDK无效的错误,需要先安装jdk依赖,运行如下命令:

// 安装JDK
apt-cache search openjdk
sudo apt-get install openjdk-11-jdk
which javac
file /usr/bin/javac
file /etc/alternatives/javac
file /usr/lib/jvm/java-11-openjdk-arm64/bin/javac
// 添加环境变量
sudo gedit ~/.bashrc
// 在文档底部加入
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-arm64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
// 保存退出并更新
source ~/.bashrc

cd 到解压后的文件下的Bin目录,安装

// 解压安装包
sudo tar -avxf pycharm-community-2019.2.tar.gz

安装pycharm

./pycharm.sh

但是发现报错,改了好几次环境变量都没用

CompilerOracle: exclude com/intellij/openapi/vfs/impl/FilePartNodeRoot.trieDescend
Error occurred during initialization of VM
java.lang.UnsupportedClassVersionError: com/intellij/util/lang/PathClassLoader has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at java.lang.SystemClassLoaderAction.run(ClassLoader.java:2202)
	at java.lang.SystemClassLoaderAction.run(ClassLoader.java:2188)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1449)
	at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1429)

于是百度了下终于找到了原因,参考这篇文章:
https://blog.csdn.net/m0_53232749/article/details/128391871
原因是我安装的pycharm包太高了,与jdk不匹配
于是到该网站中重新下载了2020.3.3包
https://www.jetbrains.com/pycharm/download/other.html

重新安装了下就正常了

torch与torchvision安装

torch安装这篇文章的帮助去下载了,但是官网论坛里的链接不知道为啥都打不开
只有1.12版本能下,但是这个太高了不兼容python3.6

https://blog.csdn.net/weixin_45930948/article/details/115600172

nivida 官网论坛下载地址https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048
安装之前需要按照官网的顺序先安装一系列其他包

sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip3 install Cython

后来找到这个网址下载各版本torch,https://download.pytorch.org/whl/torch_stable.html
搜索到了
cpu/torch-1.10.0-cp39-cp39-manylinux2014_aarch64.whl
下载包后直接用包安装的

pip3 install numpy torch-1.10.0-cp36-cp36m-linux_aarch64.whl

torchvision官网只给出了对应版本的名字,没有给直接按照上面的链接下载下来和torch对应一样名字后缀的包居然不能安装,特坑,后来在这个链接里面直接找到了对应安装
https://blog.csdn.net/Fengd_king/article/details/124032601

sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
pip install torchvision==0.11.1

cvxpy 安装

“pip install -i https://pypi.tuna.tsinghua.edu.cn/simple cvxpy”,
又是一直卡在那里不动,但还好这个就是没显示安装过程,最后也装上了,虽然有个小报错
跟下面的问题又冲突了
把numpy恢复到1.16.1之后好像可以运行,但是在实际使用的时候发现还有些包忘记装了
报错缺乏The solver GLPK_MI is not installed
还是参考这个cvxpy安装文章
https://blog.csdn.net/sinat_23971513/article/details/117125082

 pip install numpy
 pip install mkl
 pip install cvxopt
 pip install scs
 pip install ecos
 pip install osqp

但是安装啥都报错,尤其是mkl,cvxopt根本装不上
攻略说conda里面装很轻松,试了一下果然很轻松,但是还得重新弄个环境

conda install -c conda-forge cvxpy
conda install cvxopt
conda install glpk

再试试其他方法

到官网文档中找,说要先单独下载glpk包,直接编译安装之后,再添加cvxopt的变量名,把glpk的路径加进去,然后再安装才行
根本行不通,好像到compile编译部分就炸了,根本编译不成功,更别提后面了

后面验证发现,在虚拟环境中直接用conda装是没问题的,就是速度很慢,除此之外没啥毛病

程序运行报错 process finished with exit code 132(interrupted by signal 4:SIGILL)

无法运行,总是显示这个,蜜汁报错
查了下说是重启pycharm,但是重启了N次都没用
后来根据https://blog.csdn.net/Fengd_king/article/details/124032601中说的把numpy从1.19.5降低到1.13后,cvxpy悲剧的不能用了,又得往上升,但先屏蔽了cvxpy看看到底是不是numpy版本的问题

报错SyntaxError: Non-ASCII character ‘\xe7‘ in file F:/python_code/test/venv/simulation.py on line 21,

显示字符有问题,这个就是得修改下编码
在文件开头加

#-*- coding:utf-8 -*-

即可,解决起来比较简单

安装tensorflow

https://blog.csdn.net/weixin_45930948/article/details/115600172
安装tensorflow疯狂出问题,根据教程从官网下载了对应的1.15包:
https://developer.download.nvidia.com/compute/redist/jp
这里面的Vxx表示的是你的jetpack的版本,我这应该是51但是没找到就下了个44的包
点进去直接下载,然后直接安装

sudo pip3 install tensorflow-1.15.5+nv22.06-cp38-cp38-linux_aarch64.whl

一开始是下载一个包出红字一个包,发现源的问题比较严重,老是断线
于是安装的时候换源,发现也可行

sudo pip3 install tensorflow-1.15.5+nv22.06-cp38-cp38-linux_aarch64.whl  -i https://pypi.tuna.tsinghua.edu.cn/simple

但是安装到一部分又不行了,疯狂报错
又回去查攻略,发现还有一些依赖没装,又补充了一下

sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
sudo pip3 install -U pip testresources setuptools==49.6.0
sudo pip3 install -U numpy==1.16.1 future==0.18.2 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.1.1 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11

发现h5py死活安装不上,发现网上各种各样的说法都有都试了一下
https://blog.csdn.net/weixin_40524689/article/details/114703617
安装了Cpython

sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
pip3 install -U pip
pip3 install -U CPython testresources setuptools

安装了Cython
https://blog.csdn.net/lowbob/article/details/107090750

install pip Cython

还是不行,红字疯狂突脸,人都麻掉了,师姐看到我屏幕一片红都过来安慰我TvT
后来安装别的东西的时候把numpy删掉了,然后安装h5py固定版本在2.10.0后就可以安装了
查了下攻略有的说是numpy的版本问题,里面有些依赖有问题
https://github.com/h5py/h5py/issues/1837
我的报错跟这个很像,估计就是numpy的问题

sudo pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple h5py==2.10.0

这下就OK了
然后重新运行前面的tensorflow安装指令

CUDA

根据这篇文章可以找自己pack的版本如果不记得的话
https://blog.csdn.net/tanmx219/article/details/126997086

根据这个链接可以找到pack对应的cuda版本

https://developer.nvidia.cn/embedded/jetpack-sdk-451-archive

但是按照网上的思路我死活激活不了CUDA
nvcc -V对我总是失效的
气死我了,暂时还用不上,后面再调吧

死机

pycharm 切换虚拟环境的时候直接卡死,鼠标也动不了,吓死个人,最后只能拔掉电源重连,倒是好像没出啥问题,还是要赶紧备份环境

matplotlib安装

在基础环境中用

sudo apt-get install python3-matplotlib

成功安装了2.1.1,也正常能跑了
但是恶心人的cvxpy 缺少glpk组件,到官网文档中找的简洁方法没用,只好试试用虚拟环境跑。
这下可好,conda环境中安装matplotlib花费时间巨长,然后还报错

conda install matplotlib

到最后一步了给我反复报错
总是出现executing transaction failed:
后面大概意思是没有这个路径,usr/…/python3.6
但是我直接找到那个位置是完全没问题的,
摸不到头脑,啥情况啊
换成

conda install -c conda-forge matplotlib

还是报executing transaction failed:
下面变成缺少权限了
这可整不会了,查了半天,网上说虚拟环境就是装不上,建议直接关联基础环境中的和虚拟环境中的,这可太麻烦了。https://forums.developer.nvidia.com/t/jetson-nano-how-can-install-matplotlib/75132/7
死马当活马医,把老环境中matplotlib删除了

sudo pip3 uninstall matplotlib

然后到虚拟环境中再执行前面的apt-get方法,不行了完全不行
这下它还是报已经安装了matplotlib系列包
我心想这下坏了,基础环境里的也用不上了
后来在虚拟环境中用直接安装方法试了一下:

sudo pip3 install matplotlib

居然成功了,安装的是3.3.4,神了,到程序里一运行,这块通过了。

你可能感兴趣的:(Jetson,Nano,python,pycharm,pytorch,深度学习)