Visual Studio Code 配置 Python 虚拟环境的最佳实践

VSCode 专栏:

0 前言

为什么要写这篇文章?

自从微软推出了 LSP 语言服务协议(Language Server Protocol)后,每种编程语言只需实现一个 Language Server 后端,就可以为任何支持 LSP 协议的 IDE/Editor 提供代码高亮、自动补全、导航重构等功能,而不必为每一个 IDE/Editor 重复开发上述组件。实际上,LSP 和 DAP 的出现正在让 IDE 和编辑器的界限越发模糊。

截止到 2022 年,开源社区已经涌现出一大批优秀的 Language Server 实现,它们在各自领域已经拥有了接近甚至超越商业化 IDE 的功能:

目前支持 LSP 协议的 IDE/Editor:

  • Zed
  • Visual Studio Code
  • Clion(没错,jetbrains 开发的 Clion 也使用 clangd)
  • Neovim
  • Sublime Text
  • Emacs
  • Fleet
  • Eclipse

VSCode 官方文档配置 相比拥有的优势

  • 使用 Pyenv 管理 Python版本
  • 使用 venv 构建虚拟环境
  • 配合 VSCode 进行开发

1 安装 Pyenv

Pyenv 是用来管理不同 Python 版本的工具,通过它你可以在操作系统中安装多个不同版本的 Python 并随意切换。

Pyenv 仅支持 Linux 和 Mac OS,Windows 平台可以使用 Pyenv-win 项目,或者直接使用 WSL 2。笔者推荐后者,因为本地的 Pyenv-win 和 WSL 中的 Pyenv 有可能冲突,考虑到 Python 的 Linux 生态优于 Windows,建议把开发环境搬进 WSL:

Linux & WSL 2

curl https://pyenv.run | bash

Mac OS

首先安装 Xcode Command Line Tools(如果你之前没装过):

xcode-select --install

然后安装 Mac OS 的包管理器 Homebrew(参考笔者关于 C++ 的那篇文章),最后安装 Pyenv:

brew update
brew install pyenv

2 配置 Pyenv 的 Shell 环境

Bash

首先,在终端运行以下命令,将相关内容添加到 ~/.bashrc 文件中:

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc

然后,如果你有 ~/.profile~/.bash_profile~/.bash_login,也将相关内容添加到那里。如果没有这些文件,请添加到 ~/.profile 文件中。

  • 添加到 ~/.profile
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init -)"' >> ~/.profile
  • 添加到 ~/.bash_profile
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

Zsh

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc

Fish

笔者使用 Fish Shell

对于 Fish 3.2.0 或更新版本,直接在终端执行以下命令:

set -Ux PYENV_ROOT $HOME/.pyenv
fish_add_path $PYENV_ROOT/bin

否则执行:

set -Ux PYENV_ROOT $HOME/.pyenv
set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths

最后将以下命令写进 ~/.config/fish/config.fish 文件中:

pyenv init - | source

3 安装 Python 构建依赖

在使用 Pyenv 安装任何 Python 版本之前,必须装好 Python 的构建依赖。

Mac OS

brew install openssl readline sqlite3 xz zlib tcl-tk

Ubuntu/Debian/Mint

sudo apt update; sudo apt install build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

如果你要从源代码构建 PyPy 或安装其他需要 Clang 的 Python 版本,还需要安装 llvm。

其它发行版请参考官方文档:

4 Pyenv 使用

笔者建议不使用 Linux 系统自带的 Python 进行开发,而是通过 Pyenv 安装一个自己需要的版本,运行 pyenv install -l 命令查询所有可安装的 Python 版本。

笔者选择安装 Python 3.11.8:

pyenv install 3.11.8

启用 Python 3.11.8:

pyenv global 3.11.8

然后执行 pyenv versions 命令查看操作系统中所有的 Python 版本:

星号表示目前全局启用的是 3.11.8 版本而非系统自带版本

5 Pyenv 更新

Mac OS 直接通过包管理器更新,Ubuntu 运行 pyenv update 命令更新:

6 构建虚拟环境

在设置全局 Python 之后,最好不要直接 pip 安装软件包,建议创建一个虚拟环境,在其中安装需要的包。

以 Triton 为例,这是 OpenAI 开发的用于编写高效定制深度学习基元的语言和编译器。Triton 的目标是提供一个开源环境,以比 CUDA 更高的生产率编写快速代码,同时比其他现有 DSL 具有更高的灵活性。

首先在合适的位置新建名为 venvs 的文件夹,它用来存放你之后要构建的虚拟环境:

mkdir venvs
cd venvs

然后在 venvs 文件夹中构建名为 triton 的虚拟环境:

python -m venv triton

然后 venvs 中就多了名为 triton 的虚拟环境,其中包含 binlib 等文件夹:

bin 文件夹里有激活该虚拟环境的一系列脚本

运行 activate.fish 脚本激活这个虚拟环境(笔者是 Fish Shell):

source venvs/triton/bin/activate.fish

这样你的 Shell Prompt 会发生变化:

此时运行 which pythonwhich pip 命令会发现它们位于你新构建的虚拟环境 triton 目录

接下来使用 pip install xxx 命令只会在虚拟环境中安装软件包,不会影响全局的 Python 和 pip。

7 安装 VSCode 插件

  • Python
  • Python Environment Manager
  • Black Formatter

Python Environment Manager 插件能方便你查询当前 VSCode 工作空间中使用的 Python 环境和操作系统中所有可用的 Python 版本和虚拟环境(下图中 Global 3.10.12 指系统自带的 Python,并不是你通过 Pyenv 设置的全局 Python)

在 settings.json 中设置 Python 虚拟环境路径(venvs 文件夹路径):注意 WSL 有自己的 settings.json:

这样你就可以在 VSC 右下角为当前打开的项目选择需要的 Python 版本/虚拟环境:

以上就是“Visual Studio Code 配置 Python 虚拟环境的最佳实践”的全部内容,希望对你有所帮助。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

二、Python必备开发工具

img

三、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

五、Python练习题

检查学习结果。

img

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

img

最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

  • 20
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值