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

Vagrant搭建的Ubuntu中mkvirtualenv命令未找到问题求助

解决mkvirtualenv: command not found的问题

看起来你遇到的核心问题是virtualenvwrapper的环境配置没有被正确加载,结合你的Vagrant配置和操作流程,我整理了几个可能的原因和对应的解决方案:

原因1:.bashrc的配置未自动生效

你的Vagrant provision脚本已经把virtualenvwrapper的配置写入了/home/ubuntu/.bashrc,但vagrant ssh进入虚拟机时,新的shell会话还没读取到更新后的.bashrc(因为.bashrc是在shell启动时加载的,而provision是在虚拟机启动过程中执行的)。

快速解决:

先手动加载.bashrc的配置,再尝试创建虚拟环境:

source ~/.bashrc
mkvirtualenv bugs --python=python3

如果这时候命令能正常运行,说明只是配置没自动加载,后续重新ssh登录就会自动生效了。

原因2:virtualenvwrapper可能安装失败

你的provision脚本用的是python-pip(对应Python 2的pip)来安装virtualenvwrapper,有可能安装过程中出现依赖问题导致安装不完整。

排查与修复:

  1. 先检查virtualenvwrapper是否安装成功:
pip list | grep virtualenvwrapper

如果没有输出,说明安装失败了,建议改用Python 3的pip来安装(更贴合你创建Python 3虚拟环境的需求):

# 安装Python 3的pip
sudo apt-get update && sudo apt-get install -y python3-pip
# 用pip3安装virtualenvwrapper
sudo pip3 install virtualenvwrapper
  1. 确认virtualenvwrapper.sh的路径是否正确:
ls /usr/local/bin/virtualenvwrapper.sh

如果路径不对,需要修改~/.bashrc里的source行,指向正确的路径(比如pip3安装到~/.local/bin的话,就改成source ~/.local/bin/virtualenvwrapper.sh)。

原因3:WORKON_HOME目录存在权限或缺失问题

你配置了WORKON_HOME=~/.virtualenvs,但如果这个目录不存在或者权限不属于ubuntu用户,virtualenvwrapper也无法正常工作。

修复办法:

手动创建目录并设置正确权限:

mkdir -p ~/.virtualenvs
chown ubuntu:ubuntu ~/.virtualenvs

额外优化:调整Vagrant Provision脚本

为了避免后续再出现类似问题,可以优化你的provision脚本:

  1. 改用Python 3的pip安装virtualenvwrapper,确保和目标Python版本匹配;
  2. 提前创建虚拟环境目录并设置权限;
  3. 写入.bashrc后手动加载配置,确保provision后立即生效。

修改后的脚本片段参考:

sudo apt-get update
sudo apt-get -y upgrade
sudo locale-gen en_GB.UTF-8
# 安装Python 3相关依赖和pip3
sudo apt-get install -y python3-dev sqlite python3-pip
sudo pip3 install --upgrade pip
sudo pip3 install virtualenvwrapper
# 提前创建虚拟环境目录并设置权限
mkdir -p /home/ubuntu/.virtualenvs
chown ubuntu:ubuntu /home/ubuntu/.virtualenvs
if ! grep -q VIRTUALENV_ALREADY_ADDED /home/ubuntu/.bashrc; then
  echo "# VIRTUALENV_ALREADY_ADDED" >> /home/ubuntu/.bashrc
  echo "WORKON_HOME=~/.virtualenvs" >> /home/ubuntu/.bashrc
  echo "PROJECT_HOME=/vagrant" >> /home/ubuntu/.bashrc
  echo "source /usr/local/bin/virtualenvwrapper.sh" >> /home/ubuntu/.bashrc
fi
# 手动加载配置,确保provision后立即生效
source /home/ubuntu/.bashrc

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:57:59