如何在`Pycharm`中配置基于WSL的`Python Interpreters`,以及配置基于WSL的`Terminal`

文章目录

    • 一、创建pycharm用户并授予sudo权限
      • [0. 启动WSL下的CentOS](#0. 启动WSL下的CentOS)
      • [1. 创建pycharm用户并授予sudo权限](#1. 创建pycharm用户并授予sudo权限)
      • [2. 设置pycharm用户为wsl启动Linux的默认用户](#2. 设置pycharm用户为wsl启动Linux的默认用户)
      • [3. 重启并重新登录wsl下的CentOS](#3. 重启并重新登录wsl下的CentOS)
      • [4. 验证pycharm用户的sudo权限](#4. 验证pycharm用户的sudo权限)
    • [二、创建基于WSL的Python Interpreter](#二、创建基于WSL的Python Interpreter)
      • [1. 添加基于WSL的Python Interpreter](#1. 添加基于WSL的Python Interpreter)
      • [2. 选择 Linux 分发](#2. 选择 Linux 分发)
      • [3. 选择Python Interpreter环境](#3. 选择Python Interpreter环境)
      • [4. 在Pycharm下使用WSL的Python解释器](#4. 在Pycharm下使用WSL的Python解释器)
    • 三、配置基于WSL的Terminal
      • [1. 配置Terminal](#1. 配置Terminal)
      • [2. 验证WSL Terminal配置是否成功](#2. 验证WSL Terminal配置是否成功)
      • [3. 进入Terminal时,自动激活虚拟环境](#3. 进入Terminal时,自动激活虚拟环境)
      • [4. 验证效果](#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

bash 复制代码
wsl -d CentOS8

1. 创建pycharm用户并授予sudo权限

先更新yum源,安装passwdsudo命令

bash 复制代码
yum update -y && yum install passwd sudo -y
bash 复制代码
adduser -G wheel pycharm

命令adduser -G wheel pycharm将用户添加到wheel组。 wheel组中的用户会自动被授予 sudo权限,并且可以执行需要提升权限的任务。

bash 复制代码
passwd pycharm

使用passwd pycharm命令给用户设置密码

2. 设置pycharm用户为wsl启动Linux的默认用户

bash 复制代码
echo -e "\n[user]\ndefault=pycharm" >> /etc/wsl.conf

3. 重启并重新登录wsl下的CentOS

bash 复制代码
wsl --terminate CentOS8
wsl -d CentOS8

4. 验证pycharm用户的sudo权限

bash 复制代码
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 EnvironmentConda 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 SettingsShell path中配置修改为wsl(默认的为ps或cmd)

这里填写的方式跟命令行一样,可以带参数,如:

bash 复制代码
wsl -d CentOS8 --cd ~

指定wsl启动的分发,并且进入Linux后切换到用户主目录

如果不指定CentOS8,则会启动当前系统下默认的Linux分发。

如果不指定--cd参数,则进入Linux后默认是当前项目所在路径。

你也可以指定登录Linux的用户,如下:

bash 复制代码
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

示例:

bash 复制代码
[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

相关推荐
yannan2019031316 分钟前
【算法】(Python)动态规划
python·算法·动态规划
蒙娜丽宁26 分钟前
《Python OpenCV从菜鸟到高手》——零基础进阶,开启图像处理与计算机视觉的大门!
python·opencv·计算机视觉
光芒再现dev28 分钟前
已解决,部署GPTSoVITS报错‘AsyncRequest‘ object has no attribute ‘_json_response_data‘
运维·python·gpt·语言模型·自然语言处理
好喜欢吃红柚子42 分钟前
万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
人工智能·pytorch·python·计算机视觉·cnn
小馒头学python1 小时前
机器学习是什么?AIGC又是什么?机器学习与AIGC未来科技的双引擎
人工智能·python·机器学习
神奇夜光杯1 小时前
Python酷库之旅-第三方库Pandas(202)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
千天夜1 小时前
使用UDP协议传输视频流!(分片、缓存)
python·网络协议·udp·视频流
测试界的酸菜鱼1 小时前
Python 大数据展示屏实例
大数据·开发语言·python
羊小猪~~1 小时前
神经网络基础--什么是正向传播??什么是方向传播??
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
放飞自我的Coder2 小时前
【python ROUGE BLEU jiaba.cut NLP常用的指标计算】
python·自然语言处理·bleu·rouge·jieba分词