个人倾向于在 Windows 的 Linux 子系统(the Windows Subsystem for Linux, WSL)中跑 Python 程序,一是因为 Linux 操作便捷,二是因为在 Linux 中跑 Python 速度快一些,三是因为 WSL 非常稳定,与 Windows 水乳交融,资源占用也不高。
首先,在 Windows 中安装 Linux 子系统。以管理员身份打开终端(鼠标右键开始菜单,点击终端管理员),运行 wsl --install
,将自动安装最新的 Ubuntu LTS 子系统。也可安装其他 Linux 发行版:运行 wsl --list --online
列出发行版,然后运行 wsl --install <Distro>
安装。安装好之后,切换 Ubuntu 软件源为 清华镜像源。
然后,在 VS Code 中安装如下扩展:
- WSL:操作 WSL。
- Remote - SSH:操作远程计算机,包括 WSL。
- Python、Pylance、Jupyter、Jupyter Keymap 和 Jupyter Notebook Renderers:Python 扩展,其中 Jupyter 的文件后缀为
.ipynb
。
最后,下载 Linux 版 Miniconda。在 VS Code 中点击左下角的角标打开 WSL,运行 sh /下载文件夹/Miniconda3-latest-Linux-x86_64.sh
安装软件。需要注意的是,Windows 路径在 WSL 的 /mnt/
下,例如用户文件夹为 /mnt/c/Users/
。之后,按照上一篇文章 所述方法管理 Python。其中,.condarc
配置文件在 WSL 的 /home/用户名/
路径下。
虽然 WSL 和 Windows 可以访问彼此目录。例如在 Windows 的资源管理器中可以看到 Linux 文件夹,而 Windows 文件夹在 WSL 的 /mnt/
路径下。但要在终端输入路径有些很麻烦,而且通过 WSL 打开 Windows 的文件夹会得到如下提示:
此工作区位于 Windows 文件系统(/mnt/)上。为了获得最佳性能,建议将工作区移动到 Linux 文件系统(~/home)。
为此,可以通过软链接将 Windows 中的工作文件夹映射到 WSL 中,例如 ln -s /mnt/c/Users/用户名/Documents/Work /home/用户名/work
。要取消软链接,运行 rm -r /home/用户名/work
即可,这不会删除源文件夹。但需要注意的是,一定不能在末尾加斜杠!rm -r /home/用户名/work/
意味着删除该路径下的所有文件。软链接类似 Windows 中的快捷方式,直接删除快捷方式或软链接本身不会影响源文件夹,但对快捷方式或软链接内文件的操作都是实质性的。在也可以 Windows 中为文件夹创建软链接,不过稍微麻烦一些:在设置中搜索 开发者设置
,打开 开发人员模式
,然后打开命令提示符(cmd),运行 mklink /D <目标路径> <源路径>
。
顺便介绍一下 Mathematica 的免费版本 Wolfram Engine。它可以集成到 Python 和 C++ 中,非常棒。下载 Linux 版软件,并注册一个账号获取许可证,然后在 WSL 中安装它。需要注意的是,只能通过管理员权限安装 Wolfram 引擎,即 sudo bash /下载文件夹/WolframEngine_版本号_LINUX_CN.sh
。安装完成后,在终端运行 wolframscript
,输入账号和密码完成激活。Wolfram 既可以通过 Python 调用,也可以安装 VS Code 扩展 Wolfram Language Notebook 单独使用。它与 Jupyter 类似,是 Wolfram 引擎的一个交互界面,所使用的文件后缀为 .wlnb
,而非 Mathematica 的 .nb
。
题外话。本博客只是个人自娱自乐之地,偶尔整理下心得体会和学习笔记,若是对网友有所启发,那再好不过,没有也无所谓。但正因为没有目标受众,博客结构和内容有些随意和混乱,乏善可陈。接下来,我将单独开一个页面,称为杂集(varia),专门整理和归纳自己的学习笔记,以分类为序。而当前的日志页面则继续发牢骚,内容偏于个性化,以时间为序。我在 feedly 上有些许订阅用户,但该 RSS 订阅链接仅包含中文日志,将无法收到杂集的内容推送。因此,烦请感兴趣的读者订阅全站,RSS 订阅链接为 https://www.chen.fun/index.xml。