文章目录
- 一、创建pycharm用户并授予sudo权限
- 0. 启动WSL下的CentOS
- 1. 创建pycharm用户并授予sudo权限
- 2. 设置pycharm用户为wsl启动Linux的默认用户
- 3. 重启并重新登录wsl下的CentOS
- 4. 验证pycharm用户的sudo权限
- 二、创建基于WSL的Python Interpreter
- 1. 添加基于WSL的Python Interpreter
- 2. 选择 Linux 分发
- 3. 选择Python Interpreter环境
- 4. 在Pycharm下使用WSL的Python解释器
- 三、配置基于WSL的Terminal
- 1. 配置Terminal
- 2. 验证WSL Terminal配置是否成功
- 3. 进入Terminal时,自动激活虚拟环境
- 4. 验证效果
本文将总结如何在Pycharm
中配置基于WSL的Python Interpreters
,以及配置基于WSL的Terminal
。
以下演示环境:
WSL 分发版本:CentOS8
Pycharm 版本:Pycharm 2023.2
你可能需要的:
如何在WSL上导入任何Linux发行版
PyCharm 各版本下载
使用JetBrains家族产品的同学,你可能需要:ja-netfilter、ja-netfilter-all
一、创建pycharm用户并授予sudo权限
这里在WSL下的CentOS里创建一个名为pycharm的用户,专供Pycharm工具使用。
(当然这不是必须的,你可以使用默认的root用户,但不推荐,你也可以使用其他已有的用户)
0. 启动WSL下的CentOS
wsl -d CentOS8
1. 创建pycharm用户并授予sudo权限
先更新yum源,安装passwd
、sudo
命令
yum update -y && yum install passwd sudo -y
adduser -G wheel pycharm
命令adduser -G wheel pycharm
将用户添加到wheel
组。 wheel
组中的用户会自动被授予 sudo
权限,并且可以执行需要提升权限的任务。
passwd pycharm
使用passwd pycharm
命令给用户设置密码
2. 设置pycharm用户为wsl启动Linux的默认用户
echo -e "\n[user]\ndefault=pycharm" >> /etc/wsl.conf
3. 重启并重新登录wsl下的CentOS
wsl --terminate CentOS8
wsl -d CentOS8
4. 验证pycharm用户的sudo权限
C:\Users\Administrator>wsl -d CentOS8 --cd ~
[pycharm@GC ~]$ ls /root
ls: cannot open directory '/root': Permission denied
[pycharm@GC ~]$ sudo ls /root
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for pycharm:
anaconda-ks.cfg anaconda-post.log original-ks.cfg
[pycharm@GC ~]$
二、创建基于WSL的Python Interpreter
在你的Python项目中,添加基于WSL的Python Interpreter
1. 添加基于WSL的Python Interpreter
打开Pycharm的设置 > Project: <项目名称> > Python Interpreter
点击Add Interpreter
,选择On WSL
2. 选择 Linux 分发
在 Linux distribution 下拉列表,选择你要使用的Linux分发,我这里选择CentOS8
,选择后将自动检测所选的Linux分发是否有可用的Python环境。
(如果没有可用的python环境,则需要自行安装)
3. 选择Python Interpreter环境
支持System Interpreter
系统级的Python解释器,也支持Virtualenv Environment
、Conda Environmen
虚拟环境。推荐使用虚拟环境,防止污染Linux系统的Python环境。
这里使用Virtualenv Environment
,创建一个新的虚拟环境,默认它会创建在默认的用户主目录下创建一个.virtualenvs/<项目名称>
下。
4. 在Pycharm下使用WSL的Python解释器
如下,可以在Pycharm下使用基于WSL的Python解释器了。
三、配置基于WSL的Terminal
大多数情况下,在项目开发过程中,可能需要登录到Python解释器所在的终端进行一些相关的配置等。下面是如何配置在Pycharm中登录WSL下的Linux终端。
1. 配置Terminal
打开Pycharm的设置 > Tools > Terminal
在Application Settings
的Shell path
中配置修改为wsl
(默认的为ps或cmd)
这里填写的方式跟命令行一样,可以带参数,如:
wsl -d CentOS8 --cd ~
指定wsl启动的分发,并且进入Linux后切换到用户主目录
如果不指定CentOS8,则会启动当前系统下默认的Linux分发。
如果不指定–cd参数,则进入Linux后默认是当前项目所在路径。
你也可以指定登录Linux的用户,如下:
wsl -d CentOS8 -u pycharm --cd ~
如果不指定-u参数,则会登录默认的用户。因为前面设置里,已经将pycharm用户设置为CentOS8的默认登录用户了,所以针对示例来说,可以不用-u pycharm
。
2. 验证WSL Terminal配置是否成功
可以看到打开Terminal时,默认打开了 WSL的CentOS终端,并且切换到了pycharm用户的主目录。
但是我还想在进入Terminal终端时,自动激活虚拟环境。
继续往下看。
3. 进入Terminal时,自动激活虚拟环境
在用户主目录下的.bashrc
文件末尾添加如下命令:
source ~/.virtualenvs/StudyA/bin/activate
示例:
[pycharm@GC ~]$ vi .bashrc
[pycharm@GC ~]$ cat .bashrc
# .bashrc
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
# User specific environment
if ! [[ "$PATH" =~ "$HOME/.local/bin:$HOME/bin:" ]]
then
PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
export PATH
# Uncomment the following line if you don't like systemctl's auto-paging feature:
# export SYSTEMD_PAGER=
# User specific aliases and functions
source ~/.virtualenvs/StudyA/bin/activate
[pycharm@GC ~]$
4. 验证效果
如下可以看出,打开CentOS的Terminal后,自定激活了虚拟环境
参考资料:
add-wsl-specific-components-like-a-default-user
using-wsl-as-a-remote-interpreter