当前位置: 首页 > news >正文

linux中python虚拟环境和版本的选择

环境
python3.13.5, opensuse tumbleweed

venv可以直接使用

python3 -m venv test_env

含意是使用venv模块,创建test_env目录

使用虚拟环境

如果是fish shell

source test_env/bin/activate.fish

其他shell

source test_env/bin/activate

退出虚拟环境

deactivate

下载

使用虚拟环境必然是要对其使用的,所以这边使用

pip install jupyterlab

下载完后运行

jupyter lab

修改虚拟环境目录的名称

因为名称是随便创建的,所以需要修改,直接更改目录名就可以了。

查看具体虚拟环境使用的python版本

方法一:激活环境后查看(标准流程)

cd ~/playground
source test_env/bin/activate.fish

方法二:不激活环境,直接指定解释器路径

~/playground/test_env/bin/python --version

创建venv的时候指定python的版本

venv 本身不能下载和安装一个新的 Python 版本。它的作用是基于一个已经存在于您系统上的 Python 版本,来创建一个隔离的副本。

虚拟环境下进入的jupyter lab用的是虚拟环境的python

在这里插入图片描述
可以使用pip list去验证,可以看到pip list | wc -l两者显示的行数是不同的。

图形化编辑器下管理和使用虚拟环境的python或本机python

pycharm

这个pycharm会自己下载一个python,所以不必担心。

vscode

安装这个python插件,一般来说创建.py文件右下角vscode就会推荐安装一个python插件,点击install就可以进行安装。
在这里插入图片描述
那么安装具体有什么用呢?
右击代码的时候,它可以run python代码。
形如

/bin/python3 /home/yqh/playground/Python_WorkSpace/hello.py

可以看到调用了我们系统的python3,如果我们自己要运行,且没有安装这个python插件,那么就一般来说使用

python3 hello.py

这样子的语句去运行。

那如何切换python的具体版本呢?
可以点击右下角的这个python版本的文字。
在这里插入图片描述
会出现这样的选项框。
在这里插入图片描述

可以手动选择对应的虚拟环境下的python可执行文件。
在这里插入图片描述
怎么删除这个添加的路径的呢?
很简单,如果失效了的话,重启vscode就可以了。

虽然python的编译器的位置确定了,但是terminal下的pip命令还是本机的,所以直接拿pip install命令去下载必然是不行的。

所以还是需要在使用venv前使用

source ~/playground/jupyter_lab/bin/activate.fish

去激活对应的venv虚拟环境。

我看了一下vscode那个create virtual environment的选项
在这里插入图片描述
里面有两种创建方式。

您好!很抱歉方法三没有像预期那样工作。这是一个偶发但很经典的问题,通常是 VS Code 的终端设置与您的 Shell (Fish) 没有完全匹配导致的。

别担心,我们一步一步来排查,90%的可能性问题出在第一步,我们肯定能解决。


排查步骤

第一步:确认 VS Code 知道您在用 Fish Shell (最可能的原因)

VS Code 的 Python 插件非常智能,它知道要为 Fish Shell 运行 activate.fish 脚本。但前提是,VS Code 本身必须知道它启动的集成终端就是 Fish Shell。

  1. 打开 VS Code 设置

    • 按下快捷键 Ctrl + , (逗号) 打开设置界面。
    • 或者通过菜单 “File” -> “Preferences” -> “Settings”。
  2. 搜索终端设置
    在顶部的搜索框中,输入 Terminal Integrated Default Profile Linux

  3. 修改设置
    您会看到一个名为 “Terminal > Integrated > Default Profile: Linux” 的设置项。这个设置告诉 VS Code 在 Linux 系统上默认使用哪个终端。

    • 请点击下拉菜单,确保您选择的是 fish
    • 如果它当前是 bash 或其他值,那这就是问题所在!请务必将它改为 fish
  4. 重启终端
    修改设置后,请务必关闭所有已打开的 VS Code 集成终端窗口,然后通过菜单 “Terminal” -> “New Terminal” 打开一个全新的终端。

现在,再看看 (venv) 是否出现了。如果还没有,请继续下一步。

第二步:检查自动激活设置是否开启

VS Code 有一个总开关来控制这个功能。我们需要确保它处于打开状态。

  1. 回到 VS Code 设置 (Ctrl + ,)。
  2. 搜索激活设置
    在搜索框中,输入 Python Terminal Activate Environment
  3. 确认勾选
    确保 “Python > Terminal: Activate Environment” 这个选项是被勾选的状态。如果没勾选,请勾选上。
第三步:重新确认解释器选择

我们再做一次健全性检查,确保当前工作区确实关联了正确的虚拟环境。

  1. 按下 Ctrl + Shift + P 打开命令面板。
  2. 运行 Python: Select Interpreter
  3. 再次从列表中选择您的虚拟环境(例如,路径中包含 test_envjupyter_lab 的那一个)。
  4. 检查 VS Code 窗口右下角的状态栏,确认显示的是 Python ... ('test_env') 这样的字样。
第四步:终极手段:重载窗口

如果以上步骤都设置正确但依然无效,可以尝试重载 VS Code 窗口,这会强制所有配置和插件重新加载。

  1. 按下 Ctrl + Shift + P 打开命令面板。
  2. 运行 Developer: Reload Window (开发者: 重载窗口)。

总结清单

请按照这个顺序检查一遍:

  1. VS Code 默认终端是不是 fish (这是最关键的一步)
  2. Python 自动激活设置是否打勾?
  3. 当前工作区的解释器是否已正确选择?
  4. 尝试过重载窗口吗?

通常,在正确完成了第一步和第二步之后,问题就会迎刃而解。设置好之后,再打开一个新终端,看看 (venv) 是不是就神奇地出现了!

http://www.lryc.cn/news/576113.html

相关文章:

  • 【Linux手册】进程终止:进程退出和信号的响应机制
  • VB.NET,C#字典对象来保存用户数据,支持大小写
  • Selenium 多窗口截图(窗口切换)二次封装方法详解 —— Python 实践
  • 【Python】实现对LGBT+ rights worldwide (2025)数据集的可视化展示
  • MySQL在C中常用的API接口
  • TiDB AUTO_RANDOM 超大主键前端精度丢失排查:JavaScript Number 限制与解决方案
  • 玩转Linux CAN/CAN FD—SocketCAN的使用
  • opensuse安装rabbitmq
  • 【编译原理】期末复习知识总结
  • 【大数据】大数据产品基础篇
  • 【开源项目】「安卓原生3D开源渲染引擎」:Sceneform‑EQR
  • ArcGIS Pro利用擦除工具,矢量要素消除另一矢量部分区域
  • 【网络安全】密码学知识普及
  • 高可用与低成本兼得:全面解析 TDengine 时序数据库双活与双副本
  • OkHttp 简单配置
  • pandas---使用教程
  • 解构SAP RISE与Cloud ERP授权新政:从许可模式到迁移策略的深度指南
  • (一)miniconda安装配置
  • Dubbo服务调用超时问题解决方案
  • Hyperledger Fabric 入门笔记(二十)Fabric V2.5 测试网络进阶之Tape性能测试
  • Linux tcp_info:监控TCP连接的秘密武器
  • 【RAG面试题】如何获取准确的语义表示
  • MCP-安全(代码实例)
  • ubuntu安装达梦数据库
  • Java8方法引用:简洁高效的编程利器
  • algorithm ——————》双指针(移动0 复写0 快乐数 装水问题 以及数组中找几个数和为指定的元组)
  • TCP四层模型:网络协议核心解密
  • WPF 3D 开发全攻略:实现3D模型创建、旋转、平移、缩放
  • HTTP协议中Connection: Keep-Alive和Keep-Alive: timeout=60, max=100的作用
  • Linux入门攻坚——49、高可用HA之corosync/pacemaker(2)