如何将WSL中的Anaconda环境用作PyCharm解释器和Jupyter内核
问题1解答
完全可以将所有开发环境部署在WSL中,并非只能使用Windows端PyCharm专业版配置远程解释器这一种方案:
你可以直接在WSL的Ubuntu系统中安装Linux版本的PyCharm,配合WSLg功能直接在Windows桌面显示PyCharm的GUI界面,使用体验和Windows本地安装的版本几乎没有差异。同时建议把代码仓库从Windows的/mnt/c路径迁移到WSL本身的文件系统(如/home/你的用户名/git/路径下),读写性能会比跨系统操作高很多,也符合微软官方的文件操作建议。
问题2解答
这个是你当前使用的2021.2版本PyCharm的功能限制:2022.2之前的PyCharm专业版,Jupyter Server不支持直接选择已配置的WSL远程解释器。
解决方法有两种:
- 升级PyCharm专业版到2022.2及以上版本,新版本已经原生支持WSL远程解释器直接作为Jupyter Server的运行环境
- 手动在WSL的
tacs-v2环境中启动Jupyter Server,再到Windows端PyCharm的Jupyter配置页选择「已配置的服务器」,填入WSL中启动的Jupyter服务地址和token即可使用。
问题3解答
sys.path输出差异的原因
PyCharm运行Python脚本时,会默认将当前打开的项目根目录(也就是你这里的tacs-2.0.0目录)自动添加到sys.path中,所以可以直接识别到根目录下的tacs包。而WSL端启动Jupyter时,只会将你执行启动命令的当前目录添加到sys.path,你是在examples/crm路径下启动的Jupyter,自然不会包含上层的tacs-2.0.0目录。
避免手动添加路径的方案
最推荐的方案是将tacs包以可编辑模式安装到你的tacs-v2conda环境中:进入tacs-2.0.0根目录,执行pip install -e .命令即可,安装完成后无论在哪个路径下使用该环境的Python解释器,都可以直接导入tacs包,无需手动修改sys.path。
如果不想安装包,也可以在tacs-v2环境的site-packages目录下新建一个后缀为.pth的文件(比如命名为tacs.pth),在文件中写入tacs-2.0.0目录的绝对路径,之后该环境启动的所有Python进程都会自动将这个路径加入sys.path,Jupyter也可以直接识别。
内容的提问来源于stack exchange,提问作者fma

