pycharm配置wsl,并启用wsl的virtualenv
1. pycharm配置wsl,使用wsl的python解释器(举例版本pycharm2020.1)
官方文档Configure an interpreter using WSL
非微软商店安装的wsl,pycharm可能识别不到,需要手动配置自定义发行版
-
打开pycharm对应配置文件位置
-
%APPDATA%\ JetBrains \ <产品> <版本> \ config \ options wsl.distributions.xml
-
AppData
是隐藏目录,在电脑用户目录出执行cd
可直接进入 -
例子:自己电脑位置:
C:\Users\zrs\AppData\Roaming\JetBrains\PyCharm2020.1\options\ wsl.distributions.xml
-
-
编辑
wsl.distributions.xml
文件,插入自定义发行版信息
... ...
<descriptor>
<id>ubuntu-2004</id>
<microsoft-id>ubuntu-2004</microsoft-id>
<!--需要指到.exe执行文件-->
<!--注意:这里要用LX安装,是看不到exe文件的!-->
<executable-path>D:\wsl\ubuntu_2004\ubuntu2004.exe</executable-path>
<presentable-name>Ubuntu-20.04</presentable-name>
</descriptor>
<descriptor>
<id>DEBIAN</id>
<microsoft-id>Debian</microsoft-id>
<executable-path>debian.exe</executable-path>
<presentable-name>Debian GNU/Linux</presentable-name>
</descriptor>
... ...
- 打开pycharm,在Setting- Project - Project Interpreter下改成wsl的python解释器
Linux Distribution
选中自定义的发行版Python interpreter path
写入wsl中python的执行路径:/usr/bin/python3
2. 配置pycharm,使用python virtualenv
通过以上操作,可以将设置为wsl的python解释器。并且pycharm默认也是只能支持到这一步。
现在想让解释器使用wsl中python环境中创建的env环境,避免污染整个wsl的python环境。
实现方式如下(已wsl自带的python3.8为例):
-
进入wsl命令行,通过python virtualenv包进行操作
-
通过正常的
mkvirtualenv py38_env
创建虚拟环境(这里是用root用户创建,.virtualenvs
则会存在于/root/
下) -
此时如果想直接触发
py38_env
环境内的python,那么执行路径为/root/.virtualenvs/python38/bin/python3.8
-
将此路径配置为pycharm中
Python interpreter path
的设置,重启pycharm,pycharm的python解释器,则会自动指向wsl的py38_env
中的解释器
3. 关于pycharm Terminal中使用wsl的设置
pycharm设置位置: Setting - Tools - Terminal
Project settings
使用默认即可Application settings
Shell path
设置为wsl.exe
(这里在启动terminal时会自动加载wsl)Tab name
默认值即可
上述配置,只能时在启动时terminal时打开的时wsl的bash,但是无法识别出是否为wsl的虚拟环。这里如果想跟上边一样使用虚拟环境py38_env
,需要执行workon py38_env
进入env环境。暂时还没想到更好的方式 … …