如何让 PyCharm 支持 WSL 中的 venv

2022-06-22 10:35:25

前言

最近因为项目需要,临时转向 Python 开发,又因为春节在家只带了一台 Windows 电脑,环境配置着实让我头大。

先前做 Go 开发,Go 语言天生适合跨平台,但是 Python 不一样,各种包都会依赖各种 C 库,这些库在 Windows 上难以安装,VMWare 虚拟机什么的又很麻烦,于是我把眼光投向了 WSL。

IDE 自然选择了 Jetbrains 家的 PyCharm 专业版,虽然支持 WSL,但是不支持 venv,一旦导入 requirements.txt 就会把 WSL 的系统 Python 弄得乌烟瘴气。

我经过一番测试,找到了一个方法,能让 PyCharm 支持 WSL 中的 venv。


步骤

1. 准备好 WSL 环境

此处以 Ubuntu 18.04 为例,首先从 Microsoft Store 中安装 Ubuntu 18.04,完成账户创建等初始化工作,并安装 Python 3。

sudo apt install python3 python3-dev python3-pip python3-venv python3-wheel

可以把阿里云的 pip 镜像也配置上,加速后续的 Python 包安装

https://developer.aliyun.com/mirror/pypi?spm=a2c6h.13651102.0.0.3e221b11iHuqDJ

2. 准备 venv 环境

假设我们的项目名叫 example,找一个目录初始化一个 venv 环境

mkdir -p /opt/venvs
cd /opt/venvs
python3 -m venv example

上述命令会在在 /opt/venvs/example 中初始化一个 venv 环境

3. 封装 Python 命令

PyCharm 在配置 WSL 的时候,可以指定 Python 命令的路径,我们将计就计,用 Bash 脚本封装 Python,内部激活先前配置的 venv 环境,并调用真正的 Python 执行任何要执行的命令。

将以下内容放在 /opt/venvs/example/python 这个位置

#!/bin/bash

source $(dirname $0)/bin/activate

exec python "$@"

别忘了执行 chmod +x /opt/venvs/example/python,把这个脚本变为可执行

4. 配置 PyCharm

配置 PyCharm,创建一个新的 WSL 运行环境

使用 WSL 和 我们刚才封装的 Python 路径

之后正常在 PyCharm 内进行 Python 包的安装就可以了,所有包都会安装在我们创建的 /opt/venvs/example 环境中,不会影响 WSL 系统的 Python。

注意:过程中,PyCharm 依旧会弹框要求我们输入 sudo 密码,并无影响

  • 作者:Guo Y.K.
  • 原文链接:https://blog.csdn.net/u011426433/article/details/104722933
    更新时间:2022-06-22 10:35:25