You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu20.04下virtualenv无法识别新安装的Python3.10如何解决

问题根因
  • 当前终端调用的virtualenv是基于Ubuntu 20.04自带Python3.8安装的版本,默认以自身运行的Python3.8作为虚拟环境基准解释器,这就是不加参数默认创建3.8环境的原因。
  • 通过deadsnakes PPA安装的Python3.10默认缺少distutils、venv等必要组件,virtualenv扫描可用解释器时无法识别到完整可用的Python3.10,因此抛出找不到解释器的报错。
  • 若Pyenv开启了全局shim代理,会修改PATH下Python相关命令的查找优先级,进一步干扰virtualenv对系统级Python3.10的路径探测。
修复步骤
  1. 先为Python3.10安装缺失的系统依赖:
sudo apt update
sudo apt install python3.10-distutils python3.10-venv python3.10-dev

安装完成后先验证基础功能:执行/usr/bin/python3.10 -m venv test_venv,如果当前目录正常生成test_venv文件夹,说明Python3.10的虚拟环境组件已经正常,验证后可以删掉测试文件夹rm -rf test_venv。

  1. 排除Pyenv的路径干扰:
    执行which virtualenv查看命令路径,如果返回路径包含.pyenv/shims/字段,先在当前shell临时切换到系统Python环境,避免shim拦截路径查找:
pyenv shell system
  1. 创建Python3.10虚拟环境,二选一即可:
  • 方案一(推荐,无需额外安装virtualenv):直接用Python3.10自带的venv模块创建
# 先删除之前创建错误的虚拟环境文件夹
rm -rf myenv
python3.10 -m venv myenv

创建完成后执行source myenv/bin/activate激活环境,执行python -V确认版本为3.10即正常。

  • 方案二:使用virtualenv创建
    先给Python3.10安装对应版本的pip和virtualenv,避免调用旧的Python3.8版本的virtualenv:
curl -sS https://bootstrap.pypa.io/get-pip.py | sudo python3.10
python3.10 -m pip install --user virtualenv
rm -rf myenv
~/.local/bin/virtualenv myenv -p /usr/bin/python3.10
  1. (可选)配置默认virtualenv命令使用Python3.10
    卸载系统自带的基于Python3.8的virtualenv,重载shell配置即可:
sudo apt remove -y --purge virtualenv
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

配置完成后直接执行virtualenv myenv就会默认基于Python3.10创建环境。

内容的提问来源于stack exchange,提问作者John Kealy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 06:09:24