在安装Anaconda之前需要先安装ros(防止跟conda冲突,先装ros)。提前安装好cuda 和cudnn。
本博客参考:ubuntu20.04配置ros noetic和cuda,cudnn,anaconda,pytorch深度学习的环境
安装完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,
使用指令which python
查询发现确实是用的conda的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 多版本管理:
参考教程:
使用以下命令设置多版本管理优先级,注意路径为上述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 ]; then
eval "$__conda_setup"
else
if [ -f "/home/linuxize/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/linuxize/anaconda3/etc/profile.d/conda.sh"
else
export 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默认指令启动。
# 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"
else
if [ -f "/home/zrh/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/zrh/anaconda3/etc/profile.d/conda.sh"
CONDA_CHANGEPS1=false conda activate base
else
\export PATH="/home/zrh/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
conda 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
参考链接:
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的完美配合