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

Ubuntu18.04升级20.04后mkvirtualenv报错:找不到virtualenvwrapper.sh

解决virtualenvwrapper找不到virtualenvwrapper.sh的问题

问题描述

系统从Ubuntu 18.04升级到20.04后,尝试为Django项目创建Python3.8版本的虚拟环境时,执行mkvirtualenv命令报错:

ERROR: virtualenvwrapper could not find /usr/share/virtualenvwrapper/virtualenvwrapper.sh in your path

该文件实际存在,手动将文件路径加入PATH后问题仍未解决。

操作会话记录

$ mkvirtualenv -a /home/mark/python-projects/new_hopirockets_website -p /usr/bin/python3.8 new_hopi_rockets_website
    ERROR: virtualenvwrapper could not find /usr/share/virtualenvwrapper/virtualenvwrapper.sh in your path

$ echo $PATH
    /usr/local/lib/nodejs/node-v12.4.0-linux-x64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/share/virtualenvwrapper
    
$ ls -alh /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    -rw-r--r-- 1 root root 41K Sep  3  2019 /usr/share/virtualenvwrapper/virtualenvwrapper.sh
    
$ export PATH=$PATH:/usr/share/virtualenvwrapper/virtualenvwrapper.sh
    
$ echo $PATH
    /usr/local/lib/nodejs/node-v12.4.0-linux-x64/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/share/virtualenvwrapper:/usr/share/virtualenvwrapper/virtualenvwrapper.sh
    
$ mkvirtualenv -a /home/mark/python-projects/new_hopirockets_website -p /usr/bin/python3.8 new_hopi_rockets_website
    ERROR: virtualenvwrapper could not find /usr/share/virtualenvwrapper/virtualenvwrapper.sh in your path
    
$  /usr/bin/python3.8
Python 3.8.10 (default, Jun 22 2022, 20:18:18) 
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

$ ls /home/mark/python-projects/new_hopirockets_website
 articles                               fred                               new_hopi_rockets_website.wpr   run.sh
 bugs_new_hopirockets_website.ods       full_text_search                   new_hopi_rockets_website.wpu   sam.txt
 check.txt                              gallery                            old_gallery3                   setup
 contact                                get_archive_data_from_tsunami.sh  'old stuff'                     simulation
 cp_tsunami-hopirockets_to_octopus.sh   hit_counters                       payload_separated.txt          soft-ui-dashboard
 cp_tsunami_to_octopus.sh               hopirockets                        __pycache__                    static
 database                               __init__.py                        README.txt                     test.sh
 DataTables                             launchdate                         requirements                   utils
 flights                                manage.py                          rsync_logs                     viewcount

当前.bashrc相关配置

# For virtualenv and mkvirtualenv
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/share/virtualenvwrapper/virtualenvwrapper.sh
source /usr/share/virtualenvwrapper/virtualenvwrapper.sh

解决方案

1. 修正.bashrc中的错误配置

打开~/.bashrc,修改VIRTUALENVWRAPPER_VIRTUALENV变量:

# 原错误配置
# export VIRTUALENVWRAPPER_VIRTUALENV=/usr/share/virtualenvwrapper/virtualenvwrapper.sh

# 修改为正确配置(指向virtualenv可执行文件)
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv

同时移除之前手动添加到PATH的/usr/share/virtualenvwrapper/virtualenvwrapper.sh(PATH仅需添加目录,无需添加单个脚本文件)。

2. 重新加载.bashrc配置

执行命令使修改生效:

source ~/.bashrc

3. 重新创建虚拟环境

再次执行原命令:

mkvirtualenv -a /home/mark/python-projects/new_hopirockets_website -p /usr/bin/python3.8 new_hopi_rockets_website

原因说明

  • VIRTUALENVWRAPPER_VIRTUALENV变量的作用是指定virtualenv工具的可执行文件路径,而非virtualenvwrapper的脚本文件,之前的配置错误导致脚本无法找到正确的virtualenv依赖,进而触发报错。
  • PATH环境变量用于存放可执行文件的目录,将单个脚本文件加入PATH是无效操作,无需执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 13:54:23