繁体   English   中英

Python 尽管在 WSL2 中激活了虚拟环境,但版本没有改变

[英]Python versions are not changing despite activating virtual environment in WSL2

背景:

在 WSL2 (ubuntu 20.04) 中,我在目录中创建了一个 python 虚拟环境。 使用命令python3 -m venv venv我系统的 python 版本通过sudo update-alternatives --config python3设置为 python3.11(下载后),然后选择版本。 我注意到我在启动 WSL2 时遇到了一些缺少模块的错误(在计算机重新启动后发生),我读到这是因为我使用的 python 版本与 ubuntu 20.04 随附的版本不同,所以我通过配置切换回 3.8菜单和以前一样。 我还在使用连接到我的 WSL2 的 VS 代码。

这些是我的 venv 目录的一些内容: venv/bin/python venv/bin/python3 venv/bin/python3.11 venv/bin/pip venv/bin/pip3

题:

通过source venv/bin/activate我的虚拟环境后,当我执行python3 --version时,尽管使用 3.11 创建了虚拟环境,但我仍然获得 3.8.10 版本。 我能够在 VS 代码上将解释器设置为 3.11。我知道我在虚拟环境中,因为我的命令提示符前面有 (venv)。 我在虚拟环境中进入 python 控制台并import syssys.path这是我的 output ['', '/usr/lib/python38.zip', '/usr/lib/python3.8', '/usr/lib/python3.8/lib-dynload'] 为什么 python 版本没有改变,是我误解了什么还是我做错了什么? 似乎 pip 也没有工作,但是当我将系统 python 切换到 3.11 时可以工作(我尝试在 3.8 上安装它,但它说它已经安装)。

解决了:

在下面回答,只是重新创建了虚拟环境,同时确保我的系统 python 版本是 3.11(之前可能有些混淆)。

通过更改sudo update-alternatives --config python3中的选择,您还可以在所选的虚拟环境中更改所选的 python 版本(至少在使用venv时,它可能与其他工具不同)。

因此,通过sudo update-alternatives --config python3改回您想要的环境版本 python 将解决问题。

您遇到了哪些缺少模块的错误?

我在 python3.11 上删除了我的 venv 目录并重新创建了我的虚拟环境。 这已经解决了我的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM