概述
WSL Ubuntu + Docker Desktop搭建python环境
文章目录
- WSL Ubuntu + Docker Desktop搭建python环境
- 一、Window10更新WSL2内核并安装Ubuntu
- 1、安装步骤
- 2、迁移WSL ubuntu系统存储位置
- 3、可能存在问题
- 二、WSL Ubuntu搭建python环境
- 1、直接在WSL中安装anaconda(pip无法使用,github上也反馈过了,暂时找不到解决方案,此方案不建议使用)
- 2、建议安装docker,在docker下安装anaconda
- 1)安装Docker Desktop
- 2)Docker Desktop更改镜像存储位置(wsl命令,设置挂载目录)
- 3)Docker Desktop修改docker源路径
- 4)实例化anaconda容器
一、Window10更新WSL2内核并安装Ubuntu
什么是WSL?
Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生虚拟机开销。什么是WSL2?
WSL 2 是 WSL 中体系结构的新版本,它更改 Linux 发行版与 Windows 交互的方式。
WSL 2 的主要目标是提高文件系统性能并增加系统调用的完全兼容性。
每个 Linux 发行版都可以作为 WSL 1 或 WSL 2 发行版运行,并可随时进行切换。
WSL 2 是底层体系结构的主要功能,它使用虚拟化技术和 Linux 内核来实现其新功能。
1、安装步骤
具体步骤是:
-
在程序与功能中,开启 linux子系统 和 虚拟机平台,无需开启hyperV。 参考Windows 10安装WSL 2
-
到windows应用商店中下载并安装ubuntu 20.04 LTS。
-
更新WSL内核组件为WSL2,并将ubuntu切换到WSL2模式。参考WSL2更新内核组件, wsl1与wsl2切换
wsl --set-version Ubuntu 2
-
安装window terminal,方便同时打开多个控制台窗口。
2、迁移WSL ubuntu系统存储位置
迁移C盘的ubuntu系统到D盘中,并在D盘中运行ubuntu2004,注意卸载掉原来的ubuntu20.04LTS(点击左下角windows图标,找到ubuntu20.04卸载即可)。参考 【WSL2】迁移Windows虚拟子系统(Ubuntu) , win10 wsl2修改默认安装目录到其他盘
注意先进入迁移文件夹下,再使用ubuntu2004 config --default-user USERNAME
安装ubuntu系统到到迁移文件夹
运行如下命令查看迁移盘的ubuntu子系统,并切换到WSL2模式
wsl -l -v
NAME
STATE
VERSION
* Ubuntu
Running
1
wsl --set-version Ubuntu 2
windows控制台切换到ubuntu控制台
wsl ~ -d Ubuntu
3、可能存在问题
Note:
-
如果切换到WSL2后,ubuntu启动不起来,报4294967295 (0xffffffff)错误,参考https://github.com/microsoft/WSL/issues/5092,即使用如下命令(如果还不能解决,就切换到WSL1吧)
netsh winsock reset
-
测试一下网络能否ping通,但是报错了
ping: www.baidu.com: Temporary failure in name resolution
解决方法参考https://github.com/microsoft/WSL/issues/5256,如果解决不了就切换到WSL1吧,等到需要用到GPU资源,再切换到WSL2吧
二、WSL Ubuntu搭建python环境
Note:
使用WSL有以下两点建议:
- WSL ubuntu20.04版本和原生的ubuntu20.04版本是不同的,所以在使用时难免会出现在同样操作下,WSL ubuntu20.04和原生ubuntu20.04出错信息不同的问题。建议不要在WSL ubuntu子系统中直接安装anaconda,后面可能会出现pip无法使用的问题。
- 建议先在Windows中安装docker desktop,再安装anaconda,即建议使用WSL + docker解决方案,不要直接在WSL中直接安装anaconda
1、直接在WSL中安装anaconda(pip无法使用,github上也反馈过了,暂时找不到解决方案,此方案不建议使用)
安装anaconda:清华anaconda镜像
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.11-Linux-x86_64.sh
进入指定文件夹后,
bash Anaconda3-2021.11-Linux-x86_64.sh
配置conda文件路径
echo 'export PATH="/home/wangxiaoxi/anaconda3/bin"' >> ~/.bashrc
source ~/.bashrc
#上面命令可能会把WSL文件弄坏,导致ls,cd基本命令无法使用,使用如下命令修复
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/X11R6/bin
查看conda是否配置成功
conda -V
- 修改conda源,参考 ubuntu更换conda源
- 修改apt源,参考 Ubuntu 更改apt 源
- Windows10本地磁盘挂载到ubuntu的/mnt文件夹下: 将Windows系统中文件传入WSL子系统中
存在问题1:WSL ubuntu中无法使用pip
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f6e6eea04c0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/numpy/
解决方法参考https://github.com/microsoft/WSL/issues/4020,https://github.com/MicrosoftDocs/windows-uwp/issues/2679,发现还是无法解决。
2、建议安装docker,在docker下安装anaconda
Note:
安装Docker Desktop,利用docker安装anaconda镜像(镜像中包含ubuntu文件系统,建议不要在anaconda中创建虚拟环境,直接在base下安装,之后在将anaconda运行时容器打包成镜像时,pycharm才能识别镜像中的base环境,此方案建议使用)
1)安装Docker Desktop
使用如下命令在WSL ubuntu中安装docker时,提示先安装Docker Desktop
Docker Desktop安装步骤参考:Docker Desktop for Windows 安装步骤(这里需要开启HyperV)
Docker Desktop默认安装在C盘,如果要更改安装路径,可参考: docker desktop 更改安装目录,这里就不修改了。
Docker Desktop安装成功后,先将ubuntu切换到WSL2:
NAME
STATE
VERSION
* Ubuntu
Stopped
2
docker-desktop
Running
2
docker-desktop-data
Running
2
接着设置Docker Desktop,将docker集成到ubuntu中,这时ubuntu就可以直接使用docker命令了,无需安装sudo apt install docker
。
2)Docker Desktop更改镜像存储位置(wsl命令,设置挂载目录)
参考 Docker Desktop更改镜像存储位置
Note:
Docker Desktop修改镜像存储位置的方法 和 ubuntu修改存储位置相同,都要使用wsl命令。
Docker Desktop 通过WSL2启动,会自动创建2个子系统,分别对应2个 vhdx 硬盘映像文件:
NAME
STATE
VERSION
* Ubuntu
Stopped
2
docker-desktop
Running
2
docker-desktop-data
Running
2
-
在Docker Desktop图标上,右键选择[Quit Docker Desktop],退出Docker。
-
命令行执行
wsl --list -v
查看状态STATE,是否已停止Stopped。 -
命令行执行
wsl --shutdown
,关闭WSL。 -
从 wsl 把镜像 dataext4.vhdx 导出到压缩文件 docker-desktop-data.tar,导出路径应提前创建好,否则导出到不存在的路径会报错。命令行执行:
wsl --export docker-desktop-data D:programSoftwaredockerdocker_desktop_datadocker-desktop-data.tar
同理,导出把程序 distroext4.vhdx 导出到压缩文件 docker-desktop.tar,命令行执行
wsl --export docker-desktop D:programSoftwaredockerdocker_desktopdocker-desktop.tar
-
命令行执行
wsl --unregister docker-desktop-data
,注销原来的 Docker 镜像。同理,执行wsl --unregister docker-desktop
。 -
从tar文件,将导出的 Docker 镜像再导入回wsl,并设置挂载目录,命令行导入格式:
wsl --import <Distribution Name> <InstallLocation> <FileName>
如:
wsl --import docker-desktop-data D:programSoftwaredockerwsldata D:programSoftwaredockerdocker_desktop_datadocker-desktop-data.tar wsl --import docker-desktop D:programSoftwaredockerwsldistro D:programSoftwaredockerdocker_desktopdocker-desktop.tar
-
将docker-desktop-data,docker-desktop设置为WSL2
wsl --set-version docker-desktop 2 wsl --set-version docker-desktop-data 2
-
重启windows系统,重新启动 Docker Desktop 完成。
3)Docker Desktop修改docker源路径
{
"debug": true,
"experimental": false,
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"http://hub-mirror.c.163.com"
]
}
4)实例化anaconda容器
在完成好WSL和Docker Desktop安装之后,基于深度学习的anaconda环境配置步骤如下:
-
实例化anaconda容器
docker run -it --name="anaconda" -p 8888:8888 continuumio/anaconda3 /bin/bash
如果退出了,可以重启anaconda容器
#重启 docker start anaconda docker exec -it anaconda /bin/bash
-
在base环境下配置wenet环境(不要创建虚拟环境,方便之后打包成镜像,供pycharm使用)
将WSL中的wenet项目拷贝到docker容器中(假设在WSL的
/home/usr
下有wenet项目)docker cp /home/usr/wenet/requirements.txt 9cf7b3c196f3:/home/ #9cf7b3c196f3为anaconda容器id
进入anaconda容器内,在
/home/
使用pip安装所有包(conda源修改参考 ubuntu更换conda源 )pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple conda install pytorch=1.10.0 torchvision torchaudio=0.10.0 cudatoolkit=11.1 -c pytorch -c conda-forge
最后
以上就是暴躁长颈鹿为你收集整理的WSL Ubuntu + Docker Desktop搭建python环境WSL Ubuntu + Docker Desktop搭建python环境的全部内容,希望文章能够帮你解决WSL Ubuntu + Docker Desktop搭建python环境WSL Ubuntu + Docker Desktop搭建python环境所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复