WSL+anaconda+jupyter
自己之前经常用autosklearn,但是这玩意在windows下不能跑,本来想跟之前一样装个ubuntu但是感觉太麻烦了,于是试着用WSL,这里是配置全过程
WSL
以管理员权限打开cmd,输入
1 | $ wsl --install |
重启之后在MS store里下载ubuntu就行 我下了unbuntu 20.04LTS
然后在命令行里直接输入wsl就可以开始了
注意这个是默认安装在C盘。
补一个ubuntu常用命令
anaconda
我这里装的是miniconda 感觉自己也用不了那么多包
命令如下
1 | $ mkdir -p miniconda |
然后我就卡在这一步了 搞了半天都弄不过去
只能去清华镜像下了miniconda,注意下py37版本的,然后直接复制到miniconda这里面。文件目录一般是c/users/username/miniconda
然后
1 | $ bash Miniconda.... .sh |
然后就是必不可少的社会主义特色,换清华。
插曲
在那之前还有个小插曲。
我想直接用reboot来重启,但是不行,显示
1 | $ System has not been booted with systemd as init |
查了一堆,虽然我没懂到底是啥问题,但是我最后是这么解决的
1 | $ sudo -s |
这里是为了解决直接安装dotnet-sdk出现的Unable to locate package dotnet-sdk这个错误
然后接着
1 | $ sudo apt install -y daemonize dbus dotnet-runtime-5.0 gawk libc6 libstdc++6 policykit-1 systemd systemd-container |
装一些必要的module
1 | $ sudo apt install apt-transport-https |
设置wsl-transdebian的repo
1 | $ sudo apt install -y systemd-genie |
装并且使用genie
然后成功翻车了
查了查原因是
So why don't normal
reboot
/shutdown
commands work? Two reasons. First, as covered by Bengt, WSL doesn't currently support systemd, and Ubuntu simply links these two legacy commands to/usr/bin/systemctl
(the systemd control utility). You can see this withls -l /usr/sbin
.But even if these were the legacy commands which directly called Linux's shutdown API, it wouldn't work. Microsoft doesn't typically hook up API's that interact directly with the hardware, instead providing virtualization interfaces where necessary. But in the case of starting and stopping a WSL instance, it's just so "lightweight" (as discussed above) that there's not any real reason to do so.
最后只能另开一个cmd
1 | $ wsl --list |
重启进入之后显示前面有个base就是进了conda环境了
换源
1 | $ conda config --add channels 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/' |
搞环境
1 | $ conda create --name pysoc python=3.7 |
千万 千万 千万不要在base里跑东西装东西
经典装包时间
1 | $ conda install gxx_linux-64 gcc_linux-64 swig |
然后成功再次翻车
试着删除再重新创建环境也不行,没办法,重装系统吧
直接打开ubuntu的设置点击reset就行
重装之后再来一遍,不过这次没有搞reboot相关的那个包genie,
然后这次就没有翻车了,装完上面那俩之后,继续
1 | $ conda install seaborn |
常用的好像就这些,有啥缺少的待会再试试。
Jupyter
1 | $ pip install jupyterlab |
可以参考之前写的这个
然后直接输入jupyter lab就行了
由于可能闪过一大堆信息,直接在cmd里跳到下一页,导致看不到token,可以摁一下ctrl+c,会出来token,复制到浏览器就行
因为我git clone的repo也在c盘,就直接打开直接之前写的jupyterlab用就行了,
总共花了我七八个小时吧,大部分都是因为想搞reboot弄出来的 没那玩意大概四个小时结束。
注意访问的路径改变为/mnt/c(defgh...)
再次一个车的翻
我在jupyter里尝试import autosklearn的时候显示autosklearn没有,原来conda 那句没有装上
再次试着装了下,我发现,居然是geopandas和autosklearn有冲突,我无语了。
最后用
1 | $ pip3 install auto-sklearn |
搞定了
另外注意autosklearn的一些关键字现在(2021.12.5)和我本科的那个有一些区别,注意就行。
CPU and memory limit
跑了一天之后发现还没跑出来结果,刷新一看显示kernel seems to die。
然后查了查是分配的内存不够
1 | $ wsl --shutdown |
写入
[wsl2] memory=3GB # Limits VM memory in WSL 2 up to 3GB processors=4 # Makes the WSL 2 VM use two virtual processors
想写多少写多少
在wsl里用free -h可以看到内存分配情况
一个bug
最近碰到了无法识别外接硬盘的问题
就是老显示No such device
然后查到了这个
真的是宝藏!快去给我收藏。
虽然这个问题跟我遇到的并不一样
密码重置
https://zikin.org/wsl-forgot-passwd/
1 | https://raw.githubusercontent.com/acolite/acolite_luts/main/ACOLITE-LUT-202110-Reverse/L8_OLI/ACOLITE-LUT-202110-MOD2-reverse-L8_OLI-romix-8.nc |
1 | win x A |