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

文章目录

    • 一、创建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源,安装passwdsudo命令

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 /rootWe 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)
这里填写的方式跟命令行一样,可以带参数,如:

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:" ]]
thenPATH="$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 functionssource ~/.virtualenvs/StudyA/bin/activate[pycharm@GC ~]$

4. 验证效果

如下可以看出,打开CentOS的Terminal后,自定激活了虚拟环境
在这里插入图片描述



参考资料:
add-wsl-specific-components-like-a-default-user
using-wsl-as-a-remote-interpreter

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/103449.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查看视频文件关键帧间隔

一、Elecard StreamEye Tools拖放视频文件查看。 红的是I帧&#xff1b;蓝的是P帧&#xff1b;绿的是B帧。 二、ffprobe -show_streams统计。 1、统计视频关键帧、非关键帧 ffprobe.exe -i 1.mp4 -show_streams v -show_packets -print_format json > d:\1.json 再统计1.j…

Greenplum执行SQL卡住的问题

问题 今天社区群里面一位同学反映他的SQL语句执行会hang住&#xff0c;执行截图如下。 分析 根据提示信息&#xff0c;判断可能是网络有问题&#xff0c;或者是跟GP使用UDP包有关系。 此同学找了网络检查的人确定网络没有问题&#xff0c;于是猜测跟UDP包有关。 参考文章ht…

Linux常用命令——convertquota命令

在线Linux命令查询工具 convertquota 把老的配额文件转换为新的格式 补充说明 convertquota命令用于将老的磁盘额数据文件&#xff08;“quota.user”和“quota.group”&#xff09;转换为新格式的文件&#xff08;“quota.user”和“quota.group”&#xff09;。 语法 c…

Vite + vue3 项目使用 amfe-flexible 和 postcss-pxtorem 实现不同屏幕自适应

amfe-flexible 和 postcss-pxtorem 可以一起使用来实现移动端的适配效果。 amfe-flexible 主要用于动态设置根元素字体大小&#xff08;rem&#xff09;&#xff0c;以根据屏幕尺寸进行自适应布局。它会根据设备的屏幕宽度计算出根元素字体大小&#xff0c;并将其设置为页面的根…

微信小程序使用 scss

一、在 vscode 中安装 easy sass 扩展 二、在微信开发者工具导入 vscode 安装的 easy sass 扩展 安装完成后会让重新加载扩展 再次打开后就可以看到扩展已经有 easy sass 了 三、修改 easy sass 配置 重新加载扩展后&#xff0c;默认情况下这个扩展是已经启动的&#xff0c…

无涯教程-JavaScript - IMLOG10函数

描述 IMLOG10函数以x yi或x yj文本格式返回复数的公共对数(以10为底)。可以从自然对数计算复数的公共对数,如下所示: $$\log_ {10}(x yi)(\log_ {10} e)\ln(x yi)$$ 语法 IMLOG10 (inumber)争论 Argument描述Required/OptionalInumberA complex number for which you …

数据可视化:四大发明的现代转化引擎

在科技和工业的蓬勃发展中&#xff0c;中国的四大发明——造纸术、印刷术、火药和指南针&#xff0c;早已不再是古代创新的象征&#xff0c;而是催生了众多衍生行业的崭新可能性。其中&#xff0c;数据可视化技术正成为这些行业的一颗璀璨明珠&#xff0c;开启了全新的时代。 1…

Apache DolphinScheduler - 快速扩展 TaskPlugin 从入门到放弃

目前在大数据生态中&#xff0c;调度系统是不可或缺的一个重要组件。Apache DolphinScheduler 作为一个顶级的 Apache 项目&#xff0c;其稳定性和易用性也可以说是名列前茅的。而对于一个调度系统来说&#xff0c;能够支持的可调度的任务类型同样是一个非常重要的因素&#xf…

centos7使用docker-compose一键搭建mysql高可用主从集群

docker部署 环境准备 卸载旧版本 yum remove -y docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-engine 安装依赖 yum install -y yum-utils \…

命令执行漏洞复现攻击:识别威胁并加强安全

环境准备 这篇文章旨在用于网络安全学习&#xff0c;请勿进行任何非法行为&#xff0c;否则后果自负。 一、攻击相关介绍 原理 主要是输入验证不严格、代码逻辑错误、应用程序或系统中缺少安全机制等。攻击者可以通过构造特定的输入向应用程序或系统注入恶意代码&#xff…

广电运营商三网融合监控运维方案

随着三网融合逐步发展、深化&#xff0c;广电网络从为用户提供原本单一的信息服务转向了集语音、文字、图像为一体的信息服务&#xff0c;同时也实现了由单一独立的网络向综合性网络的改变。如何在业务的融合与竞争中创造核心竞争力&#xff0c;利用自身网络覆盖率上的优势&…

jsp页面出现“String cannot be resolved to a type”错误解决办法

篇首语&#xff1a;小编为大家整理&#xff0c;主要介绍了jsp页面出现“String cannot be resolved to a type”错误解决办法相关的知识&#xff0c;希望对你有一定的参考价值。 jsp页面出现“String cannot be resolved to a type”错误解决办法 解决办法&#xff1a; 右键项目…