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

2023-05-16

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,神了,到程序里一运行,这块通过了。

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

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

  • 一点小小的感悟

    从2017年发表了第一篇CSDN文章 xff0c 到现在已经过去了快五年的时间 五年前的我是一名学生 xff0c 五年后的今天我依旧是一名学生 xff0c 区别是从一名大二学生成为了现在的研二学生 这一路走来 xff0c 经历了很多很多事情
  • Arduino单片机(五).基于OpenWrt模块的无线视频遥控小车设计

    1 功能介绍 本项目所设计的机器人需要实现的功能为 xff1a 操作员在操作终端 xff08 手机或PC端 xff09 通过Wi Fi连接到小车上Wi Fi模块所在的网络中 xff0c 向其发出相关操作指令 xff0c 在Wi Fi模块接收
  • STM32单片机(二).STM32系列单片机的介绍

    STM32系列芯片是为要求高性能 低成本 低功耗的嵌入式应用设计的ARM Cortex M0 M0 43 M3 M4和M7内核 xff0c 按照内核架构分成不同的产品 其主流的产品有STM32F0 STM32F1和STM32F3 xff1b
  • STM32单片机(六). 传感器的使用

    传感器是单片机外围电路中最常见的模块 xff0c 在搭配了各种形式的传感器电路后 xff0c 就可以采集到的更多的环境信息 在本章节中 xff0c 主要介绍呼吸灯 温度传感器 RTC实时时钟以及红外遥控模块的控制使用 1 PWM实现呼吸灯的
  • STM32单片机(七). USART串口、IIC和CAN通信

    在简单的学习过了STM32中的简单外设以及中断系统后 xff0c 在本章节中开始介绍STM32芯片中各个通信接口的配置 在计算机中 xff0c 按数据传输方式可分为串行通信以及并行通信 xff1b 按数据同步方式可分为异步通信和同步通信 x
  • STM32单片机(八). ADC、DAC和DMA数据传输

    对于STM32的ADC模数转换器的介绍以及配置在文章 STM32单片机 xff08 六 xff09 传感器的使用 中已经详细介绍 xff0c 在本章节中主要介绍DAC数模转换器以及DMA的使用 1 DAC转换 1 1 数模转换器的介绍 DA
  • 虚拟机中安装Ubuntu 20.04,Liunx系统的常用命令以及工具安装

    因工作学习 需求 xff0c 在虚拟机软件VirtualBox安装了Ubuntu 20 04系统 xff0c 本章节中主要介绍一些环境的安装以及Liunx中常用的一些命令 1 软件和系统的安装 1 1 VirtualBox VirtualB
  • 51单片机(二).STC89C52单片机的引脚功能

    1 主电源引脚VCC和VSS 电源VCC接 43 5V xff0c VSS接地端 xff0c 即公共参考地 2 时钟电路引脚XTAL1和XTAL2 STC89C52芯片内部设置了一个反相放大器 xff0c XTAL1为放大器输入端 xff1
  • 51单片机(四).C51编程语言

    一 xff0e 常量与变量 1 常量 又称为标量 xff0c 在程序执行过程中不能改变 xff0c 常量数据类型有整形 xff08 int xff09 浮点型 xff08 float xff09 字符型和字符串型 应用中一般使用 defin
  • 【动态绘图】python可视化--丝滑版

    作者简介 xff1a 在读博士 xff0c 伪程序媛 xff0c 人工智能领域学习者 xff0c 深耕机器学习 xff0c 交叉学科实践者 xff0c 周更前沿文章解读 xff0c 提供科研小工具 xff0c 分享科研经验 xff0c 欢迎
  • TI DSP TMS320C66x学习笔记之DSP优化经验(八-1)

    此文是在http blog csdn net guanchanghui article details 1181851基础上 xff0c 通过自己的学习理解修改而来 暂且算作是自己的原创吧 如有侵权 xff0c 联系 xff0c 立刻改转载
  • Qt connect信号连接的几种写法

    概述 Qt 中的信号和槽应该是最熟悉不过的了 xff0c 连接信号和槽的关键字 connect有五种连接类型 xff0c 今天不是介绍这五种连接类型 xff0c 而是简单的总结一下 connect 的几种新旧写法 xff0c 其实在新版本中
  • ubuntu20.04系统的英文语言换成中文语言

    1 ubuntu20 04下载安装成功后 xff0c 默认系统语言为英文 英文界面切换到中文界面 xff0c 点击设置 2 选择对应的区域和语言 3 点击 Manage Installed Languages 上面那个 43 xff0c 然
  • he packaging for this project did not assign a file to the build artifact

    一 maven 工具中 xff0c 项目目录下 xff0c 点击运行Plugins install install install 抛出出错误 xff1a The packaging for this project did not ass
  • USB的枚举过程

    所谓USB设备与主机是通过检测Vcc上拉电阻的变化来确定是否有设备连接的 在D12内部集成了1 5k 的上拉电阻 xff0c 默认状态下不与Vcc相连 xff0c 程序运行时可以向D12发送连接命令使1 5k 电阻连接到Vcc xff0c
  • VNC远程登录树莓派的图形界面

    使用树莓派的一种经典方式 xff0c 是远程登陆进行操作 常用的方法有两种 xff0c 一种是通过SSH协议 xff0c 一种是使用VNC工具 这两种方法在Raspbian xff08 至迟2017年3月版 xff09 上都是集成的 xff
  • STM32 TIM PWM中阶操作:互补PWM输出

    STM32 TIM PWM中阶操作详解 xff1a 互补PWM输出 STM32 TIM可以输出管脚PWM信号适合多种场景使用 xff0c 功能包括单线 非互补PWM输出 xff0c 双线 互补PWM输出 xff0c 以及死区时间和刹车控制等
  • 关于“对抗样本攻击”的思考

    什么是 对抗样本攻击 笔者给 对抗样本攻击 下的定义是 xff1a 通过精心的构造原始数据 xff0c 使得机器学习模型以较大概率返回和事实相反的结果 最经典的例子就是对于图像 人脸识别系统的攻击样本了 比如 加入一些噪点 xff0c 让G
  • yum nping已加载插件:fastestmirror, langpacks没有该命令:nping。解决办法:第一步:测试网络是否连接

    版本 xff1a centos7 问题 xff1a 找不到nping命令 xff0c 试过重装也没用 xff0c 每次重装都失败 xff0c 或者出现yum nping 已加载插件 xff1a fastestmirror langpacks
  • 自己动手写操作系统——(1)将引导写入U盘

    为什么写博客呢 xff0c 想了一下 xff0c 首先是为了给自己留着复习用 xff0c 因为时间一长 xff0c 肯定有好多东西会忘记的 xff0c 在这里留个记录 xff0c 以后再整理起来就不会太麻烦了 xff1b 再者是为了分享一下

随机推荐