当你想把开发环境从WIN迁移到WSL
当你想把开发环境从WIN迁移到WSL
前言:
在win写python代码最难受的一点就是win的代码不能无缝迁移到Linux服务器上去,但是幸运的是,微软在前一段时间退出了win的子系统wsl,可以在win上无缝切换linux,为了之后的写代码快乐,这次把整个开发环境迁移过去。
1. 安装WSL
我们要安装wsl,还是从微软官方下载镜像包,当然,你也可以选择用微软商店下载。
在微软商店搜索Ubuntu,可以看到如下图所示的安装提示:选择一个你熟悉的系统版本下载即可。
**方法2:**如果你不想从微软商店下载,想自己确定安装位置
可以打开这个网址:点我 然后点击这里
进入这个页面,在这个地方选择你需要的版本即可:

2. 迁移WSL的存储位置
如果你怕wsl占满你的C盘,最好做一下存储位置的迁移,把他存到别的地方。
-
查看wsl安装哪些分支
C:\Users\micoc>wsl -l -v NAME STATE VERSION * Ubuntu-20.04 Stopped 1 docker-desktop-data Stopped 2 docker-desktop Stopped 2
注意后面的版本,可以看到Ubuntu-20.04的wsl版本是1,docker相关的wsl版本是2,导入时默认是1,docker相关的wsl导入的时候要指定wsl版本,否则会导致docker启动失败
-
关闭所有的分支及wsl2
wsl --shutdown
-
导出相关分支
wsl --export docker-desktop-data D:\wsl\docker-desktop-data.tar
这里的名字是根据你自己电脑上的wsl名字来的,这里只是做演示,路径也不一定是这个
-
注销分发并删除根文件系统。
wsl --unregister docker-desktop-data
-
将指定的 tar 文件作为新分发导入
wsl --import docker-desktop-data D:\wsl\docker-desktop-data "D:\wsl\docker-desktop-data.tar" --version 2
-
查看结果,跟操作1一样
wsl -l -v
3. VsCode打开远程
安装插件WSL
如图:
然后点击这个位置:
就会进入vscode的wsl编程,打开终端就是linux的终端,非常方便(跟我们说的code-server一样),然后就可以根据自己的习惯,安装软件 coding~
4. Pycharm设置wsl编程环境
pycharm和vscode不太一样,vscode更像是在linux系统中进行编程,代码存储在linux系统中,但是pycharm是代码还是在你本地,只是编译的环境(解释器)从win环境转移到了linux环境。
首先我们随便打开一个项目,然后点进去设置:
点击项目
,然后添加解释器,选择wsl解释器:
然后根据自己的需要创建虚拟环境,或者是直接用系统环境开发就好了。
5. 关于git第一次登录GitHub仓库
如果你在push自己的代码时遇到了这种情况:
enderkc@LAPTOP-4ITF5U8V:/mnt/g$ git push
Username for 'https://github.com': enderkc
Password for 'https://[email protected]':
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/EnderKC/NewUrp.git/'
那就是需要你登陆自己的github了,github自2021年之后为了保证用户安全就不支持账号密码登录了,如果我们要登录到自己的账户,那我们要做以下步骤获取到自己的Token
-
登录到github网页版,然后点击自己的个人头像→设置:
-
然后选择开发者设置(因为俺的浏览器安装了GitHub插件,所以是中文):
-
点击获取令牌,并且设置相应的期限以及权限:
-
在提示你输入GitHub用户名的时候可以输入自己的用户名,输入密码的时候只能输入刚刚获取的Token
-
然后你就完成了登录,可以正常的push了
enderkc@LAPTOP-4ITF5U8V:/mnt/g$ git push Username for 'https://github.com': ******** Password for 'https://********@github.com': Enumerating objects: 148, done. Counting objects: 100% (148/148), done. Delta compression using up to 12 threads Compressing objects: 100% (70/70), done. Writing objects: 100% (77/77), 26.69 KiB | 273.00 KiB/s, done. Total 77 (delta 36), reused 0 (delta 0), pack-reused 0 remote: Resolving deltas: 100% (36/36), completed with 35 local objects. To https://githu***********rp.git 37221f9..6a98259 **in -> **in
6. 关于在WSL中拷贝一些文件报错的问题
如果你在WIN+R中输入\\wsl$
可以打开你的wsl在本地的存储文件,想要复制,俺想当然的就直接拖过来,谁知道还报了个错,错误码:0x80070781
最后查资料发现这个错误遇到的人也不少,大致的解决方法就是用linux中的cp指令复制到宿主机中。
cp ./path ./copyPath