目录
摘要
买了个新电脑,从零开始安装python深度学习的代码环境,其中遇到了一些问题,在此记录步骤以及问题的解决。安装中搜了很多博客,所以本文中难免有复制部分,不过,文化人的事,哪能叫抄呢?
1.安装 Anaconda
1.1.为什么
- Anaconda方便管理环境。
这里要提到PyCharm,PyCharm对每一个新建项目,都会为他创建一个虚拟环境,并放在对应项目中,具体到文件存储就是项目文件中的“venv(virtual environment)”。这样做的好处是,我把整个项目给到别人时就不用再配置环境了,相应的、整个项目文件的大小会大很多。
当我了解到这些时,我发现以我现在的代码量并不需要很多的环境,而且环境多了占据存储、每次打开或者新建都要等待些许时间,相比之下,我还是觉得用 VS Code 更好一些。用了 VS Code 之后,项目大小就是代码的大小了,显的更精简。
当使用 VS Code 编写代码时,使用Anaconda管理环境是比较方便的,毕竟代码总是需要编译器的。 - 安装 Anaconda 自动安装 Python 以及一些常用包。
- Anaconda 有一个 Jupyter,可以在网页上写 Python,并且可以执行代码的一部分,适合学习 Python 相关知识,但我用的很少,还不太熟。
1.2.步骤
- 官网下载安装包:https://www.anaconda.com/download/
- 翻到最下面,选择系统和位数,点击下载:
- 一直 next,直到下图。just me 是指当前用户;All Users 是指所有用户。如果你不懂在说什么,那 just me 就好了。一般情况下,也是 just me 即可。
- 一直 next,然后自定义安装位置,再往后有下图。(点击窗口,alt+截图键;在博客编辑区,ctrl+v)
记得把第一个打上勾(截图时还没√),这是配置环境变量,之后 install(完了,多装了一版,为什么没有取消键)
2.创建环境
2.1.命令行
在Windows系统的开始界面,找到 Anaconda Prompt 窗口,这个窗口用来管理Anaconda,使用 conda 命令。
2.2.conda 常用命令
- conda list 查看安装了哪些包。
- conda env list 或 conda info -e 查看当前存在哪些虚拟环境
- conda update conda 检查更新当前conda
- conda --version 查询conda版本
- conda -h 查询conda的命令使用
2.3.虚拟环境相关命令
-
创建python虚拟环境
命令: conda create -n your_env_name python=X.X
结果: 创建python版本为X.X、名字为your_env_name的虚拟环境,虚拟环境可以在Anaconda的安装目录envs文件下找到
注意1: 默认情况下只安装了一些必须的包,并不会像安装anaconda时那样自动安装很多常用的包。若要实现上面的功能,则须在末尾加上“anaconda”,完整命令是:conda create -n your_env_name python=X.X anaconda
注意2: 若不指定python版本,自动安装最新版本。
注意3: 从前面可以知道,我们安装anaconda时,自动安装了python3.8,但是在创建虚拟环境时,可以要求python版本为3.7或者其他,在创建环境时,会重新安装一个版本的python以及一些必要的包。如下图,打完命令之后,会出现一大堆东西,然后问你“y/n”,选 yes 开始安装和下载一些东西。
注意4: 在安装时,会发现下载很慢,那是因为没有配置国内源,按Ctrl+c终止安装,进行配置,配置步骤见8。 -
创建带包的虚拟环境(在后面加上包的名字即可)
命令:conda create --name your_env_name package_name_1 package_name_2 … conda create --name your_env_name python=X.X package_name_1 package_name_2 …
-
进入环境
命令:activate your_env_name 或 conda activate your_env_name
结果: 可以在具体环境里安装所需要的包
-
退出虚拟环境
命令:conda deactivate env_name
-
复制某个环境
命令:conda create --name new_env_name --clone old_env_name
-
删除虚拟环境
命令:conda remove --name your_env_name --all
-
虚拟环境——外部包
查看:conda search package_name
安装:conda install -n your_env_name package_name
conda install package_name
conda install package_name=X.X.X(x.x.x代表版本)
更新:conda update package_name
删除:conda remove package_name
-
配置国内源
在创建虚拟环境或者安装某些包的时候,会发现下载的很慢,这时候需要配置国内源,也就是文件在国内的副本,这样下载会快很多,一般会配置清华镜像源,当然也有其他源,只是这里我配置的是清华源。
配置清华源的命令不止一种,其他的不清楚,在这里,由于我使用anaconda管理环境,所以使用了conda命令,以下是我从其他博客参考的anaconda配置清华源的步骤。
步骤1: 进入创建的环境(在base环境也是可以的,base环境就是安装anaconda之后自带的环境)
步骤2: 在环境里运行如下代码:
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/ conda config --set show_channel_urls yes conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/peterjc123/
步骤3:完成之后,在C盘中,找到用户里的用户名文件夹(文件夹名称是用户名称),在里面找到**.condarc**文件,用记事本打开,把里面的https改为http,并且删掉-default,保存。
步骤4: 就是安装了,或者这时候再去创建个环境,看看是不是还这么慢。
2.4.本步操作
- 配置清华源。步骤如上,配置一次之后,会在C盘用户文件夹下改变.condarc文件的内容,所以如果可以的话,直接把那个文件复制替换,应该就直接成功了,而且成功一次之后,不需要再配置,因为配置的变化就是那个文件的内容改变了。
- 创建一个虚拟环境。
3.安装 VS Code
为节省时间,只列出步骤,具体内容网上有很多。
3.1.官网下载
-
参数:User Installer(单用户安装)
3.2.自定义安装
- 将“通过code打开”操作添加到Windows资源管理器文件上下文菜单:文件右击,会出现“通过vscode打开”选项
- 将“通过code打开”操作添加到Windows资源管理器目录上下文菜单:文件夹右击,会出现“通过vscode打开”选项
- 添加到PATH:必勾,若没勾,建议重装
3.3.汉化
3.4.安装python扩展
写个python文件,会自动提示安装
3.4.问题及笔记
-
在VSCode左下角,可以选择python的虚拟环境,一开始是base环境,将它改成你创建的环境。(最好不要动base环境,我怀疑新创建的环境会借助base环境,但也不确定,总之就别动了)
-
在后来安装pytorch时,经常发现安装有问题。一开始我发现在VSCode命令行中,命令行的左端没有(base)或者(your_env_name),正常情况下,在进入到虚拟环境后,左端是会出现 (环境名称)+当前所在路径。但是我反复操作进入环境命令,始终没有变化,作为新手我有些不自信了。
之后一番操作无用,我发现左端不是 (环境名称)+当前路径,而是PS+当前路径,然后百度一番,发现PS好像是另一种控制台,名为powershell,于是我在VSCode里把它改成cmd之后,一切顺利。(新安装的VSCode似乎初始默认PS,因为powershell位于第一个)
经过重复测试,关于本笔记的纠正:我在另一台电脑重新走一遍,VSCode确实默认powershell,但当我写了一句python之后,直接运行出了结果,并且终端类别由powershell变成了python。但是命令行左端并没有 (环境名称)+当前路径。
我疑惑,在VSCode的左下角选择新创建的虚拟环境(默认是base环境),命令行左端依旧没有 (环境名称)+当前路径。
我在终端使用命令行进入新创建的环境,VSCode提示我没有安装(???一闪而过忘记了),我点了install,由于配置了清华源,迅速安装好了。值得一提,我在之前的电脑没有配置清华源时,VSCode总是时不时的提示我这个东西没安装,当时我点击install基本没反应,现在看来可能当时是因为没配置清华源,点了install之后下载速度过慢导致没有反应(怀疑)。
在用命令进入虚拟环境之后,最左端终于有了 (环境名称)+当前路径,并且退出这个环境之后,依旧会显示 (base)+当前路径
总结,当时遇到这个情况时,很复杂,没有配置清华源,命令进入环境没有反应(可能是因为上面说的???没安装好),安装总是莫名其妙停住,报错,后来真的是把powershell改成了cmd才成功。但是这次我使用命令进入环境,提示没有安装之后,很快就安装好了,所以这个问题似乎也不会再重现。
-
关于powershell和cmd,确实是有区别的,我将终端默认改成powershell之后,每次运行python文件都会在左端显示PS,这跟上次的错误,在后期的场景是一样的,改回cmd之后,一运行就会在左端显示(虚拟环境名)。所以以后,如果出现PS,就把终端默认改成cmd即可,否则…,否则我试了一下,普通的py文件还是能跑的,一些常用包也可以安装…(-_-!)我之前的问题到底在哪(-?-)
-
VSCode 左下角选择环境变量,是以绝对路径的方式选择python编译器,而activate这种以命令进入虚拟环境的方式是以左端(环境名称)为优先的,括号里是哪个环境名,就优先用哪个编译器。但这两种在VSCode发生了矛盾,因为绝对路径不存在在环境变量里找python这一说,所以左端括号里的环境即使再优先,我是绝对路径,就没有你的份。
3.5.VSCode相关操作
当我写完这个文章,我已经熟练了在cmd里操作conda,所以有些操作,可以在VSCode的终端做,也可以在Windows终端做。重点是区分powershell和cmd,以及VSCode的左下角选择环境和终端命令行左端的括号指明的环境的区别。
当然,我写之前,是希望在VSCode终端,利用左下角选择环境,然后安装pytorch,借此避过conda进入环境的命令,现在看来似乎并不必要。但以后写代码也用得到VSCode。
4.安装 cuda和cudnn
如果电脑有GPU,那就安装cuda。如果没有GPU,跳过这一步。
4.1.确认cuda版本
- cuda:由英伟达推出的通用并行计算架构。
- 进入pytorch官网:https://pytorch.org/,在官网可以看到各个参数,默认。
- package选择conda,是因为我是用anaconda来管理环境。
- 最后一个参数CUDA是cuda可用的版本,需要注意,cuda不止这些版本,但只有这些版本可以在pytorch框架里使用。这里我选则了10.2。
- 最后一行的命令,是用来安装这个框架的命令。注意,在复制之后要把最后的 -c pytorch去掉,这个参数意味着要从conda官网下载安装,这会忽视掉配置好的清华源。(是否是从conda官网下载我不肯定,但我觉得很可能是,其实我是在conda官网和pytorch官网之间徘徊)(再一个,这个参数有这样的效果我也是听人说的,本人没有亲自测过,但之前没有删掉这个参数的时候,安装一直卡死,后来我重新配了一遍源,又删掉了这个参数,瞬间完成,正如你所看到的,我不能确定之前是源配错了,还是没有删掉这个,但我更倾向于之前是因为没有删掉这个参数)
- 注意,现在并不下载安装pytorch,而只是在这里看看cuda的版本。
4.2.下载cuda
-
首先你需要注册一个英伟达账号,就点开下面的网址吧,右上角有登录/注册,没有账号无法下载。
-
然后到这个网址去下载需要的cuda版本。
cuda各版本官方下载地址:https://developer.nvidia.com/cuda-toolkit-archive(这个网址真的跟迷宫一样)
-
找到对应版本,进去,选择参数。其中最后一个选择exe(local),表示在主机上用。
-
下载(包括补丁)
4.3.安装cuda
-
注意顺序,先装大包,后装补丁。
-
双击安装,随后弹出一个路径。注意这个路径不是安装路径,推测是一个缓存路径,因为这个文件夹是隐藏文件夹,并且默认位于用户的temp下,安装成功之后,这个文件夹下没有东西。所以这个路径就不要改了。
-
安装过程,选项默认,需要打勾的就打勾。
4.4.测试安装是否成功
- 在C盘,找路径C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA,在这个路径下,存放的是各个版本的cuda,每一个版本对应一个文件夹。
- 找到安装的cuda,进入他的bin文件夹,复制路径,在win命令行中,进入这个文件夹。
- 运行指令nvcc -V,可以看到安装的cuda版本。如果正常,那就没问题了。但如果是“不是内部或外部命令…”,那意味着没装上。其实我在旧电脑上操作了一番,旧电脑的显卡很低,安装好之后打开那个bin文件夹,会发现根本就没什么文件,这也说明没装上。
- 有个问题,我新买的电脑显卡2060,旧的电脑显卡很低,但他们跟cuda10.2都不是匹配的,新电脑的比10.2版本要高,安装成功,旧电脑似乎根本无法承受。(当然这里面也有说法,我尚不清晰,大概就是什么型号的显卡能承受什么版本的cuda,但只要记住,显卡越高越好,高的兼容低的)
4.5.下载安装cudnn
-
同样需要英伟达账号。
-
cudnn:为深度学习计算设计的软件库。
-
需要对应安装的cuda版本。
-
地址:https://developer.nvidia.com/rdp/cudnn-download (如果有调查,随便点点就行了)
-
选择版本,选择系统,下载。
-
解压,获得cuda文件夹,在里面又有3个文件夹“bin、include、lib”。
-
找到cuda安装路径C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\10.2(所安装版本),在里面找到“bin、include、lib”,把cudnn三个文件夹的内容,复制到cuda安装路径里。即可。
4.6.验证是否可用
- 找到路径C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\extras\demo_suite
- 在cmd控制台,进入这个文件夹。
- 运行bandwidthTest.exe,如果Result=PASS,则成功。同时可以看到GPU型号。
- 运行deviceQuery.exe,如果Result=PASS,则成功。
- 以上表示,cuda和cudnn安装成功。
5.安装 pytorch
5.1.检查是否有合适GPU
如果有,需要安装CUDA和CuDNN
5.2.安装CUDA+CuDNN
见标题4
5.3.安装pytorch
- 如果使用pip命令,那么在最下方的Run this Command:会有一个网址,去那里下载。(需要下载两个包,我没这样做,不赘述)
- 如果在Package里选择Conda,则在最下方的Run this Command:有一个命令,注意把最后的-c pytorch删掉,然后进入需要安装pytorch的虚拟环境,运行这个命令。
5.4.测试
-
创建.py文件
-
输入以下代码
import torch print("{}".format(torch.__version__)) # 输出pytorch版本 print("{}".format(torch.cuda.is_available())) # 输出cuda是否可用,true为可用