ERROR: virtualenvwrapper could not find virtualenv in your path

ERROR: virtualenvwrapper could not find virtualenv in your path

我正在尝试使用 virtualenvwrapper 创建一个 virtualenv,但是当我使用 mkvirtualenv 时,我得到以下信息:

ERROR: virtualenvwrapper could not find virtualenv in your path

我认为这是一个 PYTHONPATH 问题。 但是,如果我执行 pip show virtualenv 我会得到以下结果:

---
Metadata-Version: 2.0
Name: virtualenv
Version: 13.1.0
Summary: Virtual Python Environment builder
Home-page: https://virtualenv.pypa.io/
Author: Jannis Leidel, Carl Meyer and Brian Rosner
Author-email: python-virtualenv@groups.google.com
License: MIT
Location: /Volumes/Data/nfs/zfs-student-3/users/2013_paris/vmonteco/Library/Python/2.7/lib/python/site-packages
Requires:

这是我的 PYTHONPATH :

/nfs/zfs-student-3/users/2013_paris/vmonteco/Library/Python/2.7/bin:/nfs/zfs-student-3/users/2013_paris/vmonteco/Library/Python/2.7/bin:/nfs/zfs-student-3/users/2013_paris/vmonteco/Library/Python/2.7/lib/python/site-packages:/Volumes/Data/nfs/zfs-student-3/users/2013_paris/vmonteco/Library/Python/2.7/lib/python/site-packages:~/.brew/Cellar

包含virtualenv的目录!

(即:/Volumes/Data/nfs/zfs-student-3/users/2013_paris/vmonteco/Library/Python/2.7/lib/python/site-packages

我的 ~/.zshrc 包含:

export WORKON_HOME=~/Envs
export PROJECT_HOME=$HOME/Devel
source $HOME"/Library/Python/2.7/bin/virtualenvwrapper.sh"

编辑: virtualenvwrapper.sh 写在 bash 中,也许我应该检查我的 PATH 而不是我的 PYTHONPATH

那么,问题可能是什么?我该如何解决?

提前感谢您的帮助。

你的 PYTHONPATH 让我觉得你安装了 Homebrew。听起来 virtualenvwrapper 是用你的系统 pip 或你的自制软件 pip 安装的,而它正在用相反的 python 解释器执行。

我终于找到问题所在了:

virtualenvwrapper.sh 写在 BASH 而不是 Python。 所以 virtualenv 是从 shell (zsh) 调用的。 我不必担心我的 PYTHONPATH,而是担心我的 PATH(我已经能够从我的 python 导入 virtualenv shell 无论如何)。

我刚刚将正确的目录添加到我的 PATH 并且一切正常(包含 virtualenv 可执行文件的目录,即 /Volumes/Data/nfs/zfs-student-3/users/2013_paris/vmonteco/Library/Python/2.7/lib/python/site-packages 不是默认情况下包含在我的 PATH 中,尽管目录 virtualenv 和其他 pip 安装的工具也在)。

  1. sudo find / -name "virtualenv"

    然后我发现可执行文件路径是:

    /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/bin/virtualenv

  2. /usr/local/bin/目录下摸个软link或者把路径加到.bash_profile,我更喜欢前者:

    sudo ln -s /usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/bin/virtualenv /usr/local/bin/virtualenv
    

重新安装 virtualenv 解决了我的问题。

我遇到了同样的问题。

$ mkvirtualenv mysite
ERROR: virtualenvwrapper could not find virtualenv in your path

经过大量费时的努力, 我决定重新安装 virtualenv。

sudo apt install virtualenv

这解决了我的问题。 我已经安装了 virtualenv。但我认为它坏了或遇到了一些错误。

  1. 查找您的 virtualenvwrapper 所在的位置。就我而言
 ~/.local/bin

可能安装在

/usr/local/bin/

这完全取决于您使用的系统或包管理器。

  1. 在您的 shell 配置中添加此路径 .bashrc.zshrc 或简单地
PATH=$PATH:<directory_you_want_to_add>

例如

PATH=$PATH:~/.local/bin

同时在.bashrc.zshrc

中添加如下配置
# the path you want your virtual environments to be saved and loaded from
export WORKON_HOME=$HOME/.virtualenvs 
export PROJECT_HOME=$HOME/<project_folder>

# most important, this is the program which loads virtualenv
# please update the path where virtualenvwrapper.sh is located
source /usr/local/bin/virtualenvwrapper.sh 

不要忘记重新启动 shell.. 或重新加载配置...

测试是否有效

mkvirtualenv test

如果您看到已创建测试环境,则一切正常。

有关详细安装说明,请参阅文档:virtualenvwrapper installation

我的做法是(使用zsh)是这样的:

export PATH=$HOME/bin:/usr/local/bin:$PATH:/Users/username/Library/Python/2.7/bin:$PATH

我只是把virtualenvwrapper.sh的文件定位在这个路径/Users/username/Library/Python/2.7/bin:$PATH

并将该路径添加到 PATH。

我正在使用 python3,在 Ubuntu 18.04 上安装了 virtualenvwrapper,使用没有 sudo 的 pip3。如果您遇到这种情况,您可能会对我的配置感兴趣。

在我的 .bashrc 的末尾,我添加了以下行(记得 在 YOUR_USERNAME 字段中输入您的用户名):

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_VIRTUALENV=/home/YOUR_USERNAME/.local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

然后使用 ctrl-D ctrl-T 重新启动 cli 或使用 source ~/.bashrc 重新加载配置。 那么你应该可以开始了!尝试安装:

lsvirtualenv
mkvirtualenv test
workon test
deactivate
rmvirtualenv test

如果您可以创建和删除虚拟环境,那么您就可以开始了。

我遇到了同样的问题并尝试了很多事情,找到的解决方案是我有三个 pip 版本,pip 有 2.7、3.6 和 3.7。 3.6 是一个适用于很多东西的版本,安装为 sudo pip3.6 install virtualenv,并且运行良好。 我建议检查您的 pip 版本并尝试根据您的 pip 版本进行安装。

ERROR: virtualenvwrapper could not find virtualenv in your path

此错误意味着 - 程序 virtualenv 不在您的系统路径中。如果您在没有 sudo 的情况下通过 pip 安装 virtualenv,则通常会发生这种情况。这种安装将数据存储在用户本地目录e.g ~/.local/bin。所以第一步是找到这个二进制文件存在的位置。您可以使用 locate 程序来做到这一点。首先使用 sudo updatedb 更新其数据库。然后运行locate *bin/virtualenv。无论您获得什么路径,都将其附加到系统路径变量中。这可以通过在 shell 配置文件中添加以下行来实现,例如~/.bashrc or ~/.zshenv.

export PATH=$PATH:/your/path

例如

export PATH=$PATH:~/.local/bin

现在打开新的 shell 并重试。错误应该消失了。

对我来说是:

export PYTHONPATH=/usr/bin/python3
export PATH=$HOME/.local/bin:$PATH
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source ~/.local/bin/virtualenvwrapper.sh

我将行更改为:

export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv

成功了。

在我的例子中,我测试了使用这个命令:

 sudo find / -name "virtualenv"

我有一个包含此文件所有路径的列表,

我一对一测试并用路径解决:

export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv

我对环境变量的配置是:

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenv
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv
source ~/.local/bin/virtualenvwrapper.sh

在文件中 .bashrc. 现在一切正常。

我已经在 .zshrc 中将变量 VIRTUALENVWRAPPER_VIRTUALENV 设置为 virtualenv 二进制文件的完整路径,它对我有用。

这是我的 .zshrc 文件:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
export VIRTUALENVWRAPPER_VIRTUALENV=$HOME/Library/Python/2.7/bin/virtualenv
source $HOME/Library/Python/2.7/bin/virtualenvwrapper.sh

删除所有与 virtualenv 相关的包即可。

pip freeze -l | grep ^virtualenv | awk -F= '{print }' | xargs pip uninstall -y