ubuntu 20.04安装 Anaconda教程

在安装Anaconda之前需要先安装ros(防止跟conda冲突,先装ros)。提前安装好cuda 和cudnn。
本博客参考:ubuntu20.04配置ros noetic和cuda,cudnn,anaconda,pytorch深度学习的环境
安装位置
conda安装完成

安装完conda后,输入:

python

查询结果为:

Python 3.11.5 (main, Sep 11 2023, 13:54:46) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

也就是系统默认python版本为anaconda下的python,
python版本查询

使用指令which python查询发现确实是用的conda的python.
查询python 路径
python版本查询
使用指令

whereis python

查询结果为:

python: /usr/bin/python2.7 /usr/bin/python3.8-config /usr/bin/python3.8 /usr/lib/python2.7 /usr/lib/python3.9 /usr/lib/python3.8 /etc/python2.7 /etc/python3.8 /usr/local/lib/python2.7 /usr/local/lib/python3.8 /usr/include/python2.7 /usr/include/python3.8d /usr/include/python3.8 /usr/share/python /home/xiujie/anaconda3/bin/python3.1 /home/xiujie/anaconda3/bin/python3.11-config /home/xiujie/anaconda3/bin/python /home/xiujie/anaconda3/bin/python3.11

由于ros 用的是系统默认的python3.8,因此如果不更改python 指向,会导致ros启动失败。
使用指令查询当前环境变量path都有哪些参数:

echo $PATH

显示结果为:

/home/xiujie/anaconda3/bin:/opt/ros/noetic/bin:/home/xiujie/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/cuda/bin:/usr/local/cuda/bin

/home/xiujie/anaconda3/bin是因为本人添加过环境变量,后续发现可以不用添加该路径进环境变量。
python 多版本管理:
参考教程:

  1. ubuntu20.04配置ros noetic和cuda,cudnn,anaconda,pytorch深度学习的环境
  2. ubuntu下系统python与anaconda下python
  3. ubuntu20安装python2, python3及版本配置
  4. ubuntu如何查找python安装目录

使用以下命令设置多版本管理优先级,注意路径为上述whereis指令查到的路径,务必要正确,设置系统python3.8为默认版本:

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 40
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 30
sudo update-alternatives --install /usr/bin/python python /home/xiujie/anaconda3/bin/python 20
python --version    # 查看当前默认版本
update-alternatives --list python  # 显示python代替版本信息
update-alternatives --config python  # 手动切换python默认版本

设置版本管理
数值越大,优先级越高。使用pdate-alternatives --config python 指令配置版本优先级
在这里插入图片描述
设置完成后另外开一个新的终端使用指令查询,证明已经修改回3.8版本,但是这会导致conda启动不了
更改结果

使用指令sudo gedit ~/.bashrc设置:
在bashrc文件最低端添加下列指令。其中/home/--------的四段绿色指令为每台主机存放conda,conda.sh,bin文件的地址。记得输入正确。

# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/linuxize/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; theneval "$__conda_setup"
elseif [ -f "/home/linuxize/anaconda3/etc/profile.d/conda.sh" ]; then. "/home/linuxize/anaconda3/etc/profile.d/conda.sh"elseexport PATH="/home/linuxize/anaconda3/bin:$PATH"fi
fi
unset __conda_setup
# <<< conda initialize <<<

运行指令:source ~/.bashrc
另外打开新的终端:
输入指令:

source ~/anaconda3/bin/activate

python

进行启动,启动指令变为由source 指定路径进行启动,不能执行默认的conda activate 启动了。
ubuntu20.04配置ros noetic和cuda,cudnn,anaconda,pytorch深度学习的环境中给出了解决办法,但是我不推荐这种方法,后续可以继续修改为直接用conda默认指令启动

运行结果
为了避免冲突,需把conda设置为默认关闭。

# added by Anaconda3 5.3.1 installer
# >>> conda init >>>
# !! Contents within this block are managed by 'conda init' !!__conda_setup="$(CONDA_REPORT_ERRORS=false '/home/zrh/anaconda3/bin/conda' shell.bash hook 2> /dev/null)"
if [ $? -eq 0 ]; then\eval "$__conda_setup"
elseif [ -f "/home/zrh/anaconda3/etc/profile.d/conda.sh" ]; then. "/home/zrh/anaconda3/etc/profile.d/conda.sh"CONDA_CHANGEPS1=false conda activate baseelse\export PATH="/home/zrh/anaconda3/bin:$PATH"fi
fi
unset __conda_setupconda deactivate
# <<< conda init <<<

设置完后,新开一个终端,发现正常使用,如果使用conda,conda activate等指令可以正常使用,参考链接:Ubuntu20.04中安装anaconda后与ros依赖python版本冲突
查询
至此conda安装导致的python版本冲突问题就完美解决了。
接下来就可以愉快的pytorch了。
虚拟环境中安装pytorch可以参考这个链接:GPU版本pytorch(Cuda12.1)清华源快速安装一步一步教!小白教学~
本人安装的是1.12.1,具体版本需要根据自己cuda版本去查。

pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 torchaudio==0.12.1+cu113 -f https://download.pytorch.org/whl/torch_stable.html

安装Pycharm

参考链接:

  1. 【Ubuntu系统配置】005Ubuntu20.04安装Anaconda3与Pycharm
  2. Ubuntu20.04手动安装PyCharm
    本文安装完成后设置了软连接:
sudo ln -s /home/xiujie/pycharm-2023.2.5/bin/pycharm.sh /usr/local/bin/pycharm
sudo chmod +x /usr/local/bin/pycharm

注意,这里一定要用完整路径,否则会出现如下错误(注意替换为自己的安装路径):

chmod: cannot operate on dangling symlink ‘/usr/local/bin/pycharm’

启动PyCharm。在终端中输入pycharm命令即可:

pycharm

如果希望以非交互模式启动PyCharm,请在命令中添加 -n 参数

pycharm -n

这样,就可以通过 pycharm 命令启动PyCharm,而无需进入特定的目录并运行 pycharm.sh 脚本。
在进行完这步操作后,本文还将图标添加。点击pycharm右下方设置图标,选择create desktop entry, 创建桌面图标。
添加桌面图标

关联anaconda的Python解释器:
参考:Python环境配置系列—第二篇:Pycharm与Anaconda的完美配合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/196566.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink(六)【DataFrame 转换算子(下)】

前言 今天学习剩下的转换算子&#xff1a;分区、分流、合流。 每天出来自学是一件孤独又充实的事情&#xff0c;希望多年以后回望自己的大学生活&#xff0c;不会因为自己的懒惰与懈怠而悔恨。 回答之所以起到了作用&#xff0c;原因是他们自己很努力。 …

人工智能基础_机器学习036_多项式回归升维实战3_使用线性回归模型_对天猫双十一销量数据进行预测_拟合---人工智能工作笔记0076

首先我们拿到双十一从2009年到2018年的数据 可以看到上面是代码,我们自己去写一下 首先导包,和准备数据 from sklearn.linear_model import SGDRegressor import numpy as np import matplotlib.pyplot as plt X=np.arange(2009.2020)#左闭右开,2009到2019 获取从2009到202…

MIKE水动力笔记20_由dfs2网格文件提取dfs1断面序列文件

本文目录 前言Step 1 MIKE Zero工具箱Step 2 提取dfs1 前言 在MIKE中&#xff0c;dfs2是一个一个小格格的网格面的时间序列文件&#xff0c;dfs1是一条由多个点组成的线的时间序列文件。 如下两图&#xff1a; 本博文内容主要讲如何从dfs2网格文件中提取dfs1断面序列文件。 …

CI/CD -gitlab

目录 一、常用命令 二、部署 一、常用命令 官网&#xff1a;https://about.gitlab.com/install/ gitlab-ctl start # 启动所有 gitlab 组件 gitlab-ctl stop # 停止所有 gitlab 组件 gitlab-ctl restart # 重启所有 gitlab 组件 gitlab-ctl statu…

linux进程间通信之信号

摘要 本文旨在研究Linux进程间通信的机制之一&#xff1a;信号。信号是由操作系统来处理的&#xff0c;说明信号的处理在内核态。信号不一定会立即被处理&#xff0c;此时会储存在信 号的信号表中。最后&#xff0c;我们会对这种通信方式的优缺点进行全面的分析&#xff0c;并给…

C++ opencv基本用法【学习笔记(九)】

这篇博客为修改过后的转载&#xff0c;因为没有转载链接&#xff0c;所以选了原创 文章目录 一、vs code 结合Cmake debug1.1 配置tasks.json1.2 配置launch.json 二、图片、视频、摄像头读取显示2.1 读取图片并显示2.2 读取视频文件并显示2.3 读取摄像头并写入文件 三、图片基…

设计模式-行为型模式-责任链模式

一、什么是责任链模式 责任链模式是一种设计模式。在责任链模式里&#xff0c;很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递&#xff0c;直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求&…

Spring Security OAuth2.0 实现分布式系统的认证和授权

Spring Security OAuth2.0 实现分布式系统的认证和授权 1. 基本概念1.1 什么是认证&#xff1f;1.2 什么是会话&#xff1f;1.2.1 基于 session 的认证方式1.2.2 基于 token 的认证方式 1.3 什么是授权&#xff1f;1.3.1 授权的数据模型 1.4 RBAC 介绍 2. Spring Security2.1 S…

JPA整合Sqlite解决Dialect报错问题, 最新版Hibernate6

前言 我个人项目中&#xff0c;不想使用太重的数据库&#xff0c;而内嵌数据库中SQLite又是最受欢迎的&#xff0c; 因此决定采用这个数据库。 可是JPA并不支持Sqlite&#xff0c;这篇文章就是记录如何解决这个问题的。 原因 JPA屏蔽了底层的各个数据库差异&#xff0c; 但是…

【2023春李宏毅机器学习】生成式学习的两种策略

文章目录 1 各个击破2 一步到位3 两种策略的对比 生成式学习的两种策略&#xff1a;各个击破、一步到位 对于文本生成&#xff1a;把每一个生成的元素称为token&#xff0c;中文当中token指的是字&#xff0c;英文中的token指的是word piece。比如对于unbreakable&#xff0c;他…

Microsoft SQL Server Management Studio(2022版本)启动无法连接到服务器

Microsoft SQL Server Management Studio&#xff08;2022版本&#xff09;启动无法连接到服务器 解决方法&#xff1a; 打开SQL Server 2022 配置管理器。 启动即可。

云ES容灾方案

一、ES集群可用性容灾 1.1 云ES集群可用性容灾(使用跨可用区实例) 云ES集群部署在三个可用区,单可用区故障,云ES集群依然可能对外提供服务;两个可用区故障,需要进行控制台切流(集群会自动切的选择主节点) 应用服务部署在二个可用区,单可用区故障,依然可对提供服务1.2 …

NSS [NISACTF 2022]bingdundun~

NSS [NISACTF 2022]bingdundun~ 考点&#xff1a;phar伪协议 点击连接&#xff0c;跳转到上传文件界面 提示只能上传图片或者压缩包 同时注意到了&#xff0c;url栏有个GET传参。传值为index试试&#xff0c;发现回显好多个//index.php&#xff0c;猜测这里传参&#xff0c;…

Kafka快速入门

文章目录 Kafka快速入门1、相关概念介绍前言1.1 基本介绍1.2 常见消息队列的比较1.3 Kafka常见相关概念介绍 2、安装Kafka3、初体验前期准备编码测试配置介绍 bug记录 Kafka快速入门 1、相关概念介绍 前言 在当今信息爆炸的时代&#xff0c;实时数据处理已经成为许多应用程序和…

UE5制作场景时的小技巧和注意事项

UE5制作场景时的小技巧和注意事项 一、场景相关 1.1灯光 1.1.1构建完光照,发现场景都是黑的 可能是所有灯光是静态灯光,把skylight改为动态,如果改完之后还是黑色的,那就在构建一次,就应该没问题了 1.1.2场景中有多个动态光会造成阴影闪烁 需要将skylight变为固定 1…

所见即所得的动画效果:Animate.css

我们可以在集成Animate.css来改善界面的用户体验&#xff0c;省掉大量手写css动画的时间。 官网&#xff1a;Animate.css 使用 1、安装依赖 npm install animate.css --save2、引入依赖 import animate.css;3、在项目中使用 在class类名上animate__animated是必须的&#x…

栈和队列的初始化,插入,删除,销毁。

目录 题外话 顺序表和链表优缺点以及特点 一.栈的特点 二. 栈的操作 2.1初始化 2.2 栈的销毁 2.3 栈的插入 2.3 输出top 2.4 栈的删除 2.5 输出栈 题外话 顺序表和链表优缺点以及特点 特点&#xff1a;顺序表&#xff0c;逻辑地址物理地址。可以任意访问&#xff0c…

LeetCode算法题解(动态规划)|LeetCoed62. 不同路径、LeetCode63. 不同路径 II

一、LeetCoed62. 不同路径 题目链接&#xff1a;62. 不同路径 题目描述&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下…

多媒体ffmpeg学习教程

多媒体ffmpeg 目前比较流行的音视频文件为:MP4 flv m3u8 ffmpeg ffmpeg ffplay ffprobe ffserverffmpeg -i INPUT -vf "split [main][tmp]; [tmp] cropiw:ih/2:0:0, vflip [flip];[main][flip] overlay0:H/2" OUTPUTffmpeg -i 2022.mp4 -vcodec mpeg4 -b:…

进程程序替换与exec系统调用

进程程序替换 进程程序替换是指将一个正在运行的进程替换为另一个可执行程序。它的本质是调用了Linux操作系统中的exec系统调用。而exec系统调用是一个家族函数&#xff0c;例如execl、execv、execle、execve等。它们的共同特点是当当前进程执行到该函数时&#xff0c;就会直接…