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

Ubuntu22.04下virtualenv虚拟环境目录与激活路径异常咨询

运行环境
  • 操作系统:Ubuntu 22.04
  • Python版本:3.10.4
问题描述

安装Python 3.10后,执行virtualenv venv创建虚拟环境,发现生成的目录结构和常规情况不符,怀疑安装过程存在操作失误。
创建虚拟环境的执行输出如下:

virtualenv venv

created virtual environment CPython3.10.4.final.0-64 in 74ms
  creator CPython3Posix(dest=/home/aravinth/Bureau/aa/venv, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/aravinth/.local/share/virtualenv)
    added seed packages: pip==22.1.2, setuptools==62.3.4, wheel==0.37.1
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator

执行ls venv查看目录内容,返回结果为:

ls venv
lib  local  pyvenv.cfg

该虚拟环境需要执行source venv/local/bin/activate才能激活,和常规的source venv/bin/activate激活路径不一致。

解答

这个现象完全正常,不存在安装操作错误。
Ubuntu 22.04默认开启了usrmerge目录合并机制,系统原生就把根目录下的/bin、/lib等路径软链接到/usr/下的对应目录,统一了文件系统结构。virtualenv创建虚拟环境时会自动识别宿主系统的目录布局,适配生成和系统结构对齐的虚拟环境目录,因此才会出现local子目录,所有可执行文件都存放在local/bin路径下。

这种结构的虚拟环境功能没有任何异常,激活后安装依赖、运行Python代码的逻辑和传统结构的虚拟环境完全一致,直接正常使用即可。如果更习惯传统的顶层bin目录结构,创建虚拟环境时加上--without-usrsyspath参数,就能生成传统布局的虚拟环境。


内容的提问来源于stack exchange,提问作者Aravinth Balakrishnan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:33:16