You need to enable JavaScript to run this app. 如何在虚拟环境中使用指定Python3.x版本?解决Python3.8创建venv报错问题
优惠活动
大模型
产品
解决方案
定价
更多

如何在虚拟环境中使用指定Python3.x版本?解决Python3.8创建venv报错问题

报错核心原因
  • 你遇到的创建Python3.8虚拟环境报错,是两个可直接定位的问题叠加导致的:
    1. Ubuntu 18.04 采用组件拆分的Python打包规则,通过apt源安装的Python3.8默认不会预装venv所需的ensurepip依赖模块,对应组件被单独打包在python3.8-venv安装包中。你系统自带的Python3.6是发行版默认配套版本,已经提前安装了对应venv组件,因此之前创建3.6版本的虚拟环境不会触发报错。
    2. 创建虚拟环境完全不需要使用sudo提权。你之前带sudo执行创建命令,很容易将虚拟环境目录创建在需要root权限操作的路径下(比如报错信息里出现的/myproject3根目录路径),不仅会造成后续的权限冲突,还会因为路径读写权限不足触发venv的ensurepip初始化失败。
分步解决操作
  • 第一步:清理之前残留的无效虚拟环境目录
    执行命令删除根目录、用户目录下残留的有问题的环境文件夹,避免权限冲突:
    sudo rm -rf /myproject3 ~/myproject3
  • 第二步:安装Python3.8对应的venv依赖组件
    直接通过apt源安装对应包即可补全缺失的ensurepip模块:
    sudo apt install python3.8-venv
  • 第三步:以普通用户身份创建虚拟环境(注意全程不要加sudo)
    进入你希望存放项目的用户目录下,考虑到你当前shell的python3默认指向Anaconda对应的3.7版本,直接调用Python3.8的绝对路径创建环境,避免路径混淆:
    /usr/bin/python3.8 -m venv myproject3
    此时创建的环境目录所有者是当前普通用户,不会出现权限相关的报错,环境内部的python3链接也会直接指向系统Python3.8的可执行文件,不会被Anaconda的PATH顺序影响。
  • 第四步:激活环境验证效果
    执行激活命令后检查python3的指向和版本:
    source myproject3/bin/activate
    python3 --version
    
    此时输出的版本就会是你预期的Python3.8,和你之前创建Python3.6虚拟环境的使用逻辑完全一致。
特殊情况兜底
  • 如果安装完python3.8-venv后仍触发ensurepip报错,可以在创建环境时跳过默认的pip初始化流程:
    执行命令创建无预装pip的环境:python3.8 -m venv myproject3 --without-pip
    激活环境后,手动通过系统自带的pip安装流程给环境配置独立的pip组件即可。

内容的提问来源于stack exchange,提问作者Sanketh B. K

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.09 08:27:03