当你想把开发环境从WIN迁移到WSL

当你想把开发环境从WIN迁移到WSL

前言:

​ 在win写python代码最难受的一点就是win的代码不能无缝迁移到Linux服务器上去,但是幸运的是,微软在前一段时间退出了win的子系统wsl,可以在win上无缝切换linux,为了之后的写代码快乐,这次把整个开发环境迁移过去。

1. 安装WSL

我们要安装wsl,还是从微软官方下载镜像包,当然,你也可以选择用微软商店下载。

在微软商店搜索Ubuntu,可以看到如下图所示的安装提示:选择一个你熟悉的系统版本下载即可。

**方法2:**如果你不想从微软商店下载,想自己确定安装位置

可以打开这个网址:点我 然后点击这里

进入这个页面,在这个地方选择你需要的版本即可:

2. 迁移WSL的存储位置

如果你怕wsl占满你的C盘,最好做一下存储位置的迁移,把他存到别的地方。

  1. 查看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启动失败

  2. 关闭所有的分支及wsl2

    wsl --shutdown
    
  3. 导出相关分支

    wsl --export docker-desktop-data D:\wsl\docker-desktop-data.tar
    

    这里的名字是根据你自己电脑上的wsl名字来的,这里只是做演示,路径也不一定是这个

  4. 注销分发并删除根文件系统。

    wsl --unregister docker-desktop-data
    
  5. 将指定的 tar 文件作为新分发导入

    wsl --import docker-desktop-data D:\wsl\docker-desktop-data "D:\wsl\docker-desktop-data.tar" --version 2
    
  6. 查看结果,跟操作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

  1. 登录到github网页版,然后点击自己的个人头像→设置:

  2. 然后选择开发者设置(因为俺的浏览器安装了GitHub插件,所以是中文):

  3. 点击获取令牌,并且设置相应的期限以及权限:

  1. 在提示你输入GitHub用户名的时候可以输入自己的用户名,输入密码的时候只能输入刚刚获取的Token

  2. 然后你就完成了登录,可以正常的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

7. 相关的参考文献

  1. Error 0x80070781 copying files from WSL to Windows
  2. How to copy a file from Windows Subsystem for Linux to Windows drive C?
  3. WSL运行python程序关于路径的坑
  4. Error code 0x80070781 should be added #635
  5. git初次登陆使用
  6. Git 常用命令总结
  7. git命令行登陆github进行操作
  8. github访问令牌token的创建方法
  9. Docker wsl存储位置迁移出C盘

当你想把开发环境从WIN迁移到WSL
http://localhost:8090//archives/ka1XsJB7
作者
EnderKC
发布于
2024年12月23日
许可协议