二十一、Ubuntu22.04 配置 Anaconda + Pycharm + Pytorch
早睡早起的程序员小姚 2024-07-19 12:37:02 阅读 72
二十一、Ubuntu22.04 配置 Anaconda + Pycharm + Pytorch
1. Python、Anaconda、Pycharm 关系介绍1.1 Python1.2 Anaconda1.3 Pycharm1.4 常见开发搭配 Anaconda + Pycharm
2. Anaconda3 的安装及使用方法2.1 安装 Anaconda32.2 常用的 Conda 命令
3. Pycharm 的安装及使用方法3.1 安装 Pycharm3.2 汉化3.3 卸载 Pycharm
4. Pycharm 和 Anaconda 关联4.1 新建项目,选择已有的 Conda 环境4.2 更换 Conda 环境
5. 在 Conda 环境中安装 Pytorch 和 torchvision5.1 Pytorch 和 torchvision 简介5.2 必须与 Python 解释器兼容5.3 必须与 CUDA 版本对应5.4 安装 & 冲突解决
1. Python、Anaconda、Pycharm 关系介绍
1.1 Python
Python 是一种解释性语言,在运行 .py 代码前,需要安装 Python 解释器
Python 解释器会逐行读取代码,并在执行时逐行解释成机器码或字节码,然后执行
常见的 Python 解释器有 CPython、Jython 等
<code>CPython 是 Python 官方解释器,用 C 语言实现,是最常用和广泛支持的 Python 解释器,也是标准的参考实现
Jython
是一个在 Java 虚拟机(JVM)上运行的 Python 解释器,它将 Python 代码编译成 Java 字节码 并在 JVM 上执行
Ubuntu22.04 默认安装 Python3 解释器
python3 --version
我这里的版本是 Python 3.10.12
暂时没用到 Python2,暂时先不装
运行一个简单的 .py 程序
只需要在终端输入
<code>python3 example.py
1.2 Anaconda
Anaconda 是一个 Python 数据科学平台,它提供了一个包管理系统和环境管理工具
Anaconda 中 自带 <code>Python 解释器 (不需要自己再安装 Python )和 一大堆安装好的工具包
,如 NumPy、Matplotlib 等
Anaconda 还提供了一个名为 Conda 的包、环境管理工具,可以用于在同一个机器上安装不同版本的软件包及其依赖,并能够在不同的环境之间切换
因为包含了大量的工具包,Anaconda 的下载文件比较大,如果只需要某些包,也可以使用 Miniconda 这个简约版(仅包含Conda 和 Python 解释器)
1.3 Pycharm
Pycharm 是一款用于 Python 开发的 IDE
提供了一整套提高 Python 开发效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示等
当然也可以选择其他的编辑器,比如 VSCode
1.4 常见开发搭配 Anaconda + Pycharm
初学者:Python解释器 + Pycharm
对于只学习 Python 语言的初学者,可以先下载好特定版本的 Python解释器
,然后再搭配界面程序 Pycharm 来进行简单的语法学习和项目调试
因为不需要考虑不同项目需要不同 Python工具包的版本问题
项目开发者:Anaconda + Pycharm
对于需要进行项目开发的人员,时常有多个项目同时开发,并且不同的项目需要不同版本的工具包
这时使用 Anaconda 可以帮助我们管理更多项目的环境,将每个项目单独放在一个 虚拟环境
中,并且使这些环境中工具包相互独立,不会产生工具包版本冲突问题,并且可以下载多个版本的工具包,可以安装多个不同版本的 Python解释器
2. Anaconda3 的安装及使用方法
2.1 安装 Anaconda3
Anaconda3 是 Anaconda 的具体版本
Anaconda3 中的 Python 解释器默认使用的是 Python3.x 版本,而不是 Python2.x 版本
Python2.x 版本中,字符串是以 ASCII 编码处理的,而在 Python3.x 版本中,字符串是以 Unicode 编码处理的
安装 Anaconda 的最佳方法是下载最新的安装程序 bash 脚本, 然后运行它
Anaconda 官网下载
如果下载速度太慢的话,也可以通过清华大学开源软件镜像站下载
清华大学开源软件镜像站
进入安装脚本所在的目录,运行它
<code>bash Anaconda3-2023.09-0-Linux-x86_64.sh
一路回车和 yes
最后选择安装位置,我这里选择默认
安装过程中系统PATH有变动,需要source一下
<code>source ~/.bashrc
此时命令行前会出现 (bash) 字样,这是因为安装过程中在PATH中添加了conda初始化代码,自动激活了 base 环境
所以这里就直接进入了 Conda 的 base 环境,换一个终端也还是激活状态,比较烦人…
base 环境是 Anaconda 安装时自动创建的默认环境
这个环境中包含了 Anaconda 中的 Python 解释器和一些核心库,如 NumPy、Matplotlib 等
除了 base 环境之外,你应该创建其他的 Conda 环境,每个环境互相独立,都是一个独立的 Python 运行环境,可以包含不版本的 Python 解释器和其他库
禁止Conda 自动激活 base 环境
输入以下指令,然后重启终端即可
<code>conda config --set auto_activate_base false
如果再想进入 base 环境,只需要手动激活即可,不过只对当前终端有效
conda activate base
虚拟环境中的 Python 解释器版本和 Ubuntu22.04 自带的版本并不一致
验证 Anaconda 是否安装成功
<code>conda --version
# 列出当前激活环境(没激活的话,默认是 base 环境)中安装的所有包以及Python解释器
conda list
2.2 常用的 Conda 命令
配置 conda 镜像源
创建虚拟环境的时候,下载太慢了,老出问题
换成国内的源
<code># 查看当前镜像源
conda config --show channels
# 添加清华源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
# 从channel中安装包时显示channel的url,这样就可以知道包的安装来源
conda config --set show_channel_urls yes
# 清除索引缓存,保证用的是镜像站提供的索引
conda clean -i
或者直接修改 ~/.condarc(最强硬)
<code>sudo gedit ~/.condarc
文本替换成下面的内容
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- defaults
auto_activate_base: false
show_channel_urls: true
虚拟环境管理
注意:我们可以将前面带有两个短线(–)的常用命令进行缩写(并不是所有的都可以缩写)
方法:是取一个短线和选项的首字母
例1:–name 可以缩写成 -n
例2:–envs 可以缩写成 -e
# 列出所有已创建的 Conda 虚拟环境及其信息,包括环境名称、路径、Python解释器的版本
conda info --envs
# 创建虚拟环境
conda create --name <虚拟环境名>
# 创建虚拟环境 + 指定Python解释器的版本为3.7
conda create --name <虚拟环境名> python=3.7
# 创建虚拟环境 + 指定Python解释器的版本为3.7 + 指定虚拟环境路径
# 如果不手动指定安装路径的话,虚拟环境默认安装在 /home/yao/anaconda3/envs (除了 base 环境)
conda create --prefix /path/to/envs --name <虚拟环境名> python=3.7
# 激活虚拟环境,使环境中的Python解释器和库可用
conda activate <虚拟环境名>
# 退出虚拟环境
conda deactivate
# 删除虚拟环境(包括环境中的所有包和文件)
conda remove --name <虚拟环境名> --all
我这里新建了一个虚拟环境 myEnv,Python解释器版本选择 3.7
虚拟环境中的 Python 解释器被安装在 bin 目录下
这点很重要,后面用 Pycharm 创建项目需要选上
包管理
<code># 安装包
# pip install PackageName # 用 pip 安装 也可以
conda install PackageName
# 安装多个包
conda install PackageName1 PackageName2 ...
# 安装包并指定版本号
# pip install PackageName==版本号 # 注意这里是两个等号
conda install PackageName=版本号 # 注意这里是一个等号
# 卸载包
conda remove PackageName
# 更新包
conda update PackageName
# 更新环境中的所有包
conda update --all
# 列出已安装的包
conda list
# 搜寻包
conda search PackageName
3. Pycharm 的安装及使用方法
3.1 安装 Pycharm
Pycharm 下载
下载免费的社区版即可
专业版需要激活
解压缩
<code>tar -xvf pycharm-professional-2023.2.2.tar.gz
# 然后把解压缩文件复制到家目录
mv pycharm-community-2023.2.2 ~
进入 Pycharm 目录下的 bin 目录,然后运行安装脚本
<code>cd ~/pycharm-community-2023.2.2/bin
sh ./pycharm.sh
选择 <code>Continue
在打开 Pycharm 启动页面后,在左下角的 configure 选项中选择 ”Create Desktop Entry “ 创建桌面快捷方式
3.2 汉化
打开 Pycharm,找到 Plugins,搜索 Chinese,然后安装中文语言包
安装完成后,点击 <code>restart IDE 重启
3.3 卸载 Pycharm
上文已经提到所有的程序相关文件都保存在了 /home/yao/pycharm-community-2023.2.2
目录下
配置信息文件是在/home/yao/.config/JetBrains
下的 PyCharmCE2023.2 目录中
缓存文件是在/home/yao/.cache/JetBrains
下的 PyCharmCE2023.2 目录中
# 删除程序相关文件
sudo rm -r /home/yao/pycharm-community-2023.2.2
# 删除配置文件
rm -r ~/.config/JetBrains/PyCharmCE2023.2
# 删除缓存文件
rm -r ~/.cache/JetBrains/PyCharmCE2023.2
4. Pycharm 和 Anaconda 关联
4.1 新建项目,选择已有的 Conda 环境
打开 Pycharm
新建一个项目,起名 testProject
然后可以选择我们之前创建好的虚拟环境(也可以自己新建一个 Conda 虚拟环境)
这里就会自动选上 Conda 虚拟环境中的 Python解释器
4.2 更换 Conda 环境
后面要修改的话,就直接 <code>文件 — 设置
– 项目:XXX
– Python 解释器
Python 控制台:启动 Python 解释器,进入交互式 Python 环境
在这个环境中,你输入 Python 代码会被立即执行,便于代码调试
5. 在 Conda 环境中安装 Pytorch 和 torchvision
5.1 Pytorch 和 torchvision 简介
Pytorch:是一个非常 NB 的开源机器学习库,用于构建深度学习模型
torchvision:是 Pytorch 的一个扩展包,提高了一系列用于处理图像和视频数据的功能,包括数据加载、预处理、数据转换、模型定义和评估等
5.2 必须与 Python 解释器兼容
Pytorch、torchvision 版本必须和 <code>Python 解释器版本 兼容
5.3 必须与 CUDA 版本对应
Pytorch、torchvision 版本必须和你的 <code>CUDA 版本 对应起来!!!
推荐去官网:根据版本选择安装指令
可以选择 Conda 或者 Pip 安装,这是两个不同的包管理器,都可以用,不过指令略有不同
我的 Ubuntu系统中没装 Pip,但是Conda 的虚拟环境中预装了 Pip,所以可以在激活的环境中使用
但是我这里安装的是 CUDA 11.7,所以我只能安装 CUDA 11.7 及以下的版本的 Pytorch 包,得去找历史版本
历史版本
例如:Pytorch 版本 2.0.1 ,支持 CUDA 11.7
通过 conda 安装
<code>-c pytorch 和 -c nvidia
中的 c 表示 channel,指定了软件包的来源,分别是 Pytorch 和 NVIDIA 的 conda 仓库,所以很有可能会出现安装非常缓慢的情况
可以选择国内的镜像源来下载
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/linux-64/
- defaults
auto_activate_base: false
show_channel_urls: true
如果配置了国内镜像源,安装时把 -c pytorch
和 -c nvidia
删掉即可
通过 pip 安装
直接输指令即可
5.4 安装 & 冲突解决
用 conda 安装
<code># 新建一个虚拟环境,选择 Python 解释器版本为 3.9
conda create --name myEnv39 python=3.9
# 激活创建好的环境,否则会安装到默认的 base 环境中
conda activate myEnv39
# 安装
conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7
# 查看已安装的包
conda list
# 退出虚拟环境
conda deactivate
# 删除虚拟环境(包括环境中的所有包和文件)
conda remove --name myEnv39 --all
一堆冲突!!!
(myEnv39) yao@myUbuntu:~$ conda install pytorch==2.0.1 torchvision==0.15.2 torchaudio==2.0.2 pytorch-cuda=11.7
Collecting package metadata (current_repodata.json): done
Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: unsuccessful initial attempt using frozen solve. Retrying with flexible solve.
Solving environment: \
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failed
UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:
Specifications:
- torchaudio==2.0.2 -> python[version='2.7.*|3.5.*|3.6.*|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0|>=3.5,<3.6.0a0|3.4.*']code>
Your python: python=3.9
If python is on the left-most side of the chain, that's the version you've asked for.
When python appears to the right, that indicates that the thing on the left is somehow
not available for the python version you are constrained to. Note that conda will not
change your python version to a different minor version unless you explicitly specify
that.
The following specifications were found to be incompatible with each other:
Output in format: Requested package -> Available versions
Package pytorch-cuda conflicts for:
torchvision==0.15.2 -> pytorch==2.0.1 -> pytorch-cuda[version='>=11.6,<11.7|>=11.7,<11.8|>=11.8,<11.9|>=12.1,<12.2']code>
torchvision==0.15.2 -> pytorch-cuda[version='11.7.*|11.8.*']code>
torchaudio==2.0.2 -> pytorch==2.0.1 -> pytorch-cuda[version='>=11.7,<11.8|>=11.8,<11.9']code>
pytorch==2.0.1 -> pytorch-cuda[version='>=11.7,<11.8|>=11.8,<11.9']code>
torchaudio==2.0.2 -> pytorch-cuda[version='11.7.*|11.8.*']code>
Package pytorch conflicts for:
torchvision==0.15.2 -> pytorch==2.0.1
torchaudio==2.0.2 -> pytorch==2.0.1
Package openblas conflicts for:
torchaudio==2.0.2 -> numpy[version='>=1.11'] -> openblas[version='0.2.14|0.2.19']code>
torchvision==0.15.2 -> numpy[version='>=1.11'] -> openblas[version='0.2.14|0.2.19']code>
Package typing conflicts for:
torchvision==0.15.2 -> pytorch -> typing
pytorch==2.0.1 -> typing_extensions -> typing[version='>=3.7.4']code>
Package _libgcc_mutex conflicts for:
python=3.9 -> libgcc-ng[version='>=11.2.0'] -> _libgcc_mutex[version='*|0.1',build=main]code>
torchvision==0.15.2 -> libgcc-ng[version='>=11.2.0'] -> _libgcc_mutex[version='*|0.1',build=main]code>
pytorch==2.0.1 -> _openmp_mutex -> _libgcc_mutex[version='*|0.1',build=main]The following specifications were found to be incompatible with your system:code>
- feature:/linux-64::__cuda==12.2=0
- feature:/linux-64::__glibc==2.35=0
- feature:|@/linux-64::__cuda==12.2=0
- feature:|@/linux-64::__glibc==2.35=0
- pytorch==2.0.1 -> __cuda[version='>=11.8']code>
- pytorch==2.0.1 -> libgcc-ng[version='>=11.2.0'] -> __glibc[version='>=2.17']code>
- torchaudio==2.0.2 -> pytorch==2.0.1 -> __cuda[version='>=11.8']code>
- torchvision==0.15.2 -> libgcc-ng[version='>=11.2.0'] -> __glibc[version='>=2.17']code>
- torchvision==0.15.2 -> pytorch==2.0.1 -> __cuda[version='>=11.8']code>
Your installed version is: 12.2
冲突好像是因为用了国内源,换成用 -c pytorch
和 -c nvidia
从官网下载就可以安葬,不会有这些冲突
但速度很慢,最后会因为超时而结束(可以把代理关了,速度会提升
)
网上搜了一下
<code>conda 只适合用来环境隔离!作为 virtualenv 的上位替代品!
建议用 conda 创建空的 env,然后用 pip 进行各种 package 的安装
用 pip 安装
可以先配置一下清华源(但对我好像没啥用)
# 激活环境
conda activate myEnv39
# 永久修改
pip config set global.index-url http://pypi.tuna.tsinghua.edu.cn/simple
# 检查是否配置成功
pip config get global.index-url
或者直接修改配置文件
sudo gedit ~/.config/pip/pip.conf
添加文本
[global]
index-url = http://pypi.tuna.tsinghua.edu.cn/simple
然后就可以去安装了
注意把后面的 --index-url https://download.pytorch.org/whl/cu117
删了
不然会覆盖你配置文件中设置的默认源
# CUDA 11.7
pip install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2
# 消除警告
pip --trusted-host pypi.tuna.tsinghua.edu.cn install torch==2.0.1+cu117 torchvision==0.15.2+cu117 torchaudio==2.0.2
清华源中,没有这个版本!也可能是开了代理,关闭代理重启电脑再试试看
换成 pytorch 1.10.0 试试看
但只能找到支持 CUDA 11.1 的,我的 CUDA 11.7 应该能向下兼容,先装了再说
<code># CUDA 11.1
pip install torch==1.10.0+cu111 torchvision==0.11.0+cu111 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html
# 消除警告
pip --trusted-host pypi.tuna.tsinghua.edu.cn install torch==1.10.0+cu111 torchvision==0.11.0+cu111 torchaudio==0.10.0 -f https://download.pytorch.org/whl/torch_stable.html
# 检查是否安装成功
conda list
速度还挺快的!但貌似添加的清华源没起到一点作用!!还是从 -f 附加的包索引源下载!!很迷
删掉 -f 附加的包索引源,再试一次
还是会报错,找不到符合的 torch 很迷
<code>ERROR: Could not find a version that satisfies the requirement torch==1.10.0+cu111 (from versions: none)
ERROR: No matching distribution found for torch==1.10.0+cu111
算了,验证一下 Pytorch 能不能用!
import torch
torch.cuda.is_available()
print(torch.__version__)
总结:关闭代理!!!!!!
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。