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。
-
打开 VS Code 设置:
- 按下快捷键
Ctrl + ,
(逗号) 打开设置界面。 - 或者通过菜单 “File” -> “Preferences” -> “Settings”。
- 按下快捷键
-
搜索终端设置:
在顶部的搜索框中,输入Terminal Integrated Default Profile Linux
。 -
修改设置:
您会看到一个名为 “Terminal > Integrated > Default Profile: Linux” 的设置项。这个设置告诉 VS Code 在 Linux 系统上默认使用哪个终端。- 请点击下拉菜单,确保您选择的是
fish
。 - 如果它当前是
bash
或其他值,那这就是问题所在!请务必将它改为fish
。
- 请点击下拉菜单,确保您选择的是
-
重启终端:
修改设置后,请务必关闭所有已打开的 VS Code 集成终端窗口,然后通过菜单 “Terminal” -> “New Terminal” 打开一个全新的终端。
现在,再看看 (venv)
是否出现了。如果还没有,请继续下一步。
第二步:检查自动激活设置是否开启
VS Code 有一个总开关来控制这个功能。我们需要确保它处于打开状态。
- 回到 VS Code 设置 (
Ctrl + ,
)。 - 搜索激活设置:
在搜索框中,输入Python Terminal Activate Environment
。 - 确认勾选:
确保 “Python > Terminal: Activate Environment” 这个选项是被勾选的状态。如果没勾选,请勾选上。
第三步:重新确认解释器选择
我们再做一次健全性检查,确保当前工作区确实关联了正确的虚拟环境。
- 按下
Ctrl + Shift + P
打开命令面板。 - 运行
Python: Select Interpreter
。 - 再次从列表中选择您的虚拟环境(例如,路径中包含
test_env
或jupyter_lab
的那一个)。 - 检查 VS Code 窗口右下角的状态栏,确认显示的是
Python ... ('test_env')
这样的字样。
第四步:终极手段:重载窗口
如果以上步骤都设置正确但依然无效,可以尝试重载 VS Code 窗口,这会强制所有配置和插件重新加载。
- 按下
Ctrl + Shift + P
打开命令面板。 - 运行
Developer: Reload Window
(开发者: 重载窗口)。
总结清单
请按照这个顺序检查一遍:
- VS Code 默认终端是不是
fish
? (这是最关键的一步) - Python 自动激活设置是否打勾?
- 当前工作区的解释器是否已正确选择?
- 尝试过重载窗口吗?
通常,在正确完成了第一步和第二步之后,问题就会迎刃而解。设置好之后,再打开一个新终端,看看 (venv)
是不是就神奇地出现了!