WSL 使用经验积累
本文主要包含了安装配置 WSL,安装 Oh-my-posh 终端美化,安装配置 Neovim,基于 Miniconda 构建 Python 开发环境、利用 Conda 配置 TensorFlow 虚拟环境、配置 PyTorch 虚拟环境、配置 Flax 虚拟环境,WSL GPU 支持,基于 Pyenv 和 Pipenv 配置 Python 开发环境、使用 Git 和 Github 等内容。
安装配置 WSL
Windows Subsystem for Linux Documentation | Microsoft Learn
安装 WSL 2 并配置用户信息
默认安装的 Linux 版本为 Ubuntu。Install WSL | Microsoft Learn
1 | wsl --install # 安装 WSL2 |
How to display $PATH as one directory per line?
1 | apt list --installed # list all installed packages |
Error code: Wsl/Service/CreateInstance/GetDefaultDistro/WSL_E_DEFAULT_DISTRO_NOT_FOUND
1
2管理员权限运行 PowerShell
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
WSL 配置代理服务
1 | 创建 C:\users\username\.wslconfig 文件,添加如下内容 |
安装 Oh-my-posh 终端美化
首先需要安装 Oh-my-posh, 因为安装完了之后会生成新的 .bashrc
文件。
1 | curl -s https://ohmyposh.dev/install.sh | sudo bash -s # 安装 OMP |
升级 Node.js
1 | sudo apt update |
安装配置 Neovim
安装 Neovim
1
2
3sudo add-apt-repository ppa:neovim-ppa/unstable # add the repo
sudo add-apt-repository --remove ppa:neovim-ppa/stable # remove ppa
sudo apt update && sudo apt install neovim # update & install安装 C++ 编译器
1
2
3
4
5sudo apt update
sudo apt install npm # 安装 Node.js 和 npm
sudo apt install build-essential
sudo apt-get install manpages-dev
gcc --version配置 Neovim
1
2
3
4
5
6
7
8mkdir ~/.config/ # 创建配置文件夹
mkdir ~/.config/nvim # 创建 nvim 配置文件夹
export nvim_path=/home/latex/.config/nvim/
cd $nvim_path
git init
git branch -M main
git remote add origin https://github.com/Latexalpha/nvim
git pull origin main安装 tree-sitter
1
npm install -g tree-sitter-cli
安装 Python 插件
1
pip install pynvim debuypy
安装 ripgrep, fd-find, fswatch
1
2
3sudo apt install ripgrep
sudo apt install fd-find
sudo apt install fswatch
基于 Miniconda 配置 Python 开发环境
Set up a WSL development environment | Microsoft Learn
安装 Miniconda
1 | sudo apt update |
需要将 Neovim 的全局 Python 设为 conda base
需要为每一个虚拟环境安装 pynvim 和 debugpy
1
pip install pynvim debugpy # 安装 pynvim 和 debugpy
配置 TensorFlow 开发环境
1 | conda create -n tf2.15 python=3.11 # 注意这里使用的 Python 版本最好和 Conda base 的版本不一样 |
- 安装步骤参考官网,非常简单。 Install TensorFlow with pip
- Use CuDNNLSTM in TF 2 python - Is there cudnnLSTM or cudNNGRU alternative in tensorflow 2.0 - Stack Overflow
配置 PyTorch 开发环境
1 | conda create -n torch2.1 python=3.11.4 # 注意这里使用的 Python 版本最好和 Conda base 的版本不一样 |
- 安装步骤参考官网,非常简单(选择 Linux 系统)。Start Locally | PyTorch
配置 Flax 开发环境
- 首先安装 JAX GPU 版
Installing JAX — JAX documentation - 然后安装 Flax
Installation — Flax documentation
WSL GPU 支持
WSL 的 GPU 支持由 WIndows 的驱动提供,安装了 WSL 之后无需重新安装驱动。
需要注意的是,所有的操作都需要在激活了 TensorFlow 虚拟环境的条件下进行,否则会报错。
需要在 Windows 安装支持 WSL 的 Nvidia 驱动,只要在 linux 终端输入
nvidia-smi
有输出完整的信息,就代表驱动安装好了。CUDA Version N/A
GitHub issue1
2
3
4mkdir -p $CONDA_PREFIX/etc/conda/activate.d
echo 'CUDNN_PATH=$(dirname $(python -c "import nvidia.cudnn;print(nvidia.cudnn.__file__)"))' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
echo 'export LD_LIBRARY_PATH=$CONDA_PREFIX/lib/:$CUDNN_PATH/lib:$LD_LIBRARY_PATH' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
source $CONDA_PREFIX/etc/conda/activate.d/env_vars.shlibcuda.so
Stack Overflow1
2
3
4
5cd \Windows\System32\lxss\lib
del libcuda.so
del libcuda.so.1
mklink libcuda.so libcuda.so.1.1
mklink libcuda.so.1 libcuda.so.1.1libdevice.10.bc
GitHub issue1
2
3
4mkdir -p $CONDA_PREFIX/lib/nvvm/libdevice/
cp -p $CONDA_PREFIX/lib/libdevice.10.bc $CONDA_PREFIX/lib/nvvm/libdevice/
echo 'export XLA_FLAGS=--xla_gpu_cuda_data_dir=$CONDA_PREFIX/lib' >> $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
conda install -c nvidia cuda-nvcc --yescould not open file to read NUMA node
Stack Overflow1
2
3
4import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' # or any {'0', '1', '2'}
# 在代码 import tensorflow 之前加入上面两行
import tensorflow as tfWithout NUMA support
NVIDIA Developer Forums1
2import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3' # or any 0 1 2
基于 Pyenv 和 Pipenv 配置 Python 开发环境
使用 Pyenv 进行 Python 版本管理
Install pyenv
1
2
3
4
5
6
7
8git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc
exec "$SHELL"
which python3 # show where is python3
ls -ls /usr/bin/python*Install Python by pyenv
1
2
3
4
5Installing libraries that need for installing Python
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev
Installing Python
pyenv install 3.9.13
pyenv global 3.9.13Installing pyenv, and Python by pyenv on WSL (Ubuntu 18.04 LTS)
使用 Pipenv 管理 Python 虚拟环境
Pipenv 安装与配置
1
2
3
4
5
6sudo apt install python3-pip # 安装 pip
sudo apt install pip
pip3 install pipenv # 使用 pip3 安装 pipenv
export PATH="/home/user/.local/bin:$PATH" # 添加路径到 PATH
echo $PATH # show path
echo "${PATH//:/$'\n'}" # show path one directory per linePyTorch
1
2
3cd the_venv_folder
pipenv install --python 3.9
pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu116TensorFlow: 太 TMD 复杂了,别整了
使用 Git 和 Github
设置配置文件:用户名与邮箱
1
2git config --global user.name "example-name"
git config --global user.email "example@outlook.com"设置 Credential Manager (GCM)
1
2git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"
注意仅支持 https 协议