【问题标题】:ERROR: virtualenvwrapper could not find virtualenv in your path错误:virtualenvwrapper 在您的路径中找不到 virtualenv
【发布时间】:2015-09-25 07:11:22
【问题描述】:

我正在尝试使用 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/库/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

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

提前感谢您的帮助。

【问题讨论】:

  • 显示你的 .bashrc 文件
  • @AjayGupta 你是说我的 ~/.zshrc 吗?里面有几样东西不会全部展示,我要展示的部分应该和什么有关?
  • mac和linux都是.bashrc文件,你在哪个操作系统上?
  • @AjayGupta 我知道,但如果我使用 bash,它是 .bashrc,但我没有:我使用 zsh。

标签: python virtualenv pythonpath virtualenvwrapper


【解决方案1】:

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

我遇到了同样的问题。

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

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

sudo apt install virtualenv

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

【讨论】:

  • 对我来说,我必须这样做sudo apt install --reinstall virtualenv。感谢您的建议!
  • sudo apt install virtualenv --upgrade 为我修复了它
【解决方案2】:

我在 Ubuntu 18.04 上使用带有 virtualenvwrapper 的 python3,使用不带 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

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

【讨论】:

  • 这是在 Windows 10 Ubuntu 子系统上解决此问题的最简单的解决方案,谢谢!
  • 也在我的 Windows 10 Ubuntu 子系统上工作。关键部分是export VIRTUALENVWRAPPER_VIRTUALENV=/home/YOUR_USERNAME/.local/bin/virtualenv。我使用 Everything(一个搜索程序)搜索了 virtualenv,发现它的存在是一个以 /.local/bin/virtualenv 结尾的长目录。
【解决方案3】:
  1. sudo find / -name "virtualenv"

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

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

  2. 点击/usr/local/bin/目录下的软链接或者添加.bash_profile的路径,我更喜欢前者:

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

【讨论】:

  • 这对我来说是最好的选择,因为我在 vagrant 中的 pip 安装位于一个不寻常的地方 (/home/vagrant/.local/bin/virtualenv)。
  • 是的,确实如此。这是迄今为止我得到的关于 virtualenvwrapper 找不到 virtualenv 的最好建议。谢谢!
【解决方案4】:

我终于发现了问题所在:

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

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

【讨论】:

  • 目录到底是什么?很抱歉,我已经筋疲力尽了。我的 virtualenv 和 wrapper 路径是 /usr/local/bin。但是我用 HomeBrew 安装了我的 Pyhtton3。我不知道是否弄乱了我的外壳。
  • @OzkanSerttas 你好,它有点旧,但如果我没记错的话,它是关于添加包含virtualenv 可执行文件的目录的路径。我编辑了我的答案以进一步澄清。
【解决方案5】:
  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

【讨论】:

    【解决方案6】:

    对我来说是:

    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
    

    成功了。

    【讨论】:

      【解决方案7】:

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

       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. 现在它的所有工作。

      【讨论】:

        【解决方案8】:
        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
        

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

        【讨论】:

          【解决方案9】:

          我这样做的方式是(使用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。

          【讨论】:

            【解决方案10】:

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

            【讨论】:

            • 没错,homebrew 安装好了。似乎两者都安装了,会导致问题吗?我认为解释器会抓取我的 PYTHONPATH 并使用他找到的第一个 virtualenv。
            • 我不使用 virtualenvwrapper 但似乎 virtualenvwrapper.sh 脚本是 sourced 在将包装函数导出到当前环境之前确定要使用哪个 python 解释器。
            • 你的意思是 virtualenvwrapper.sh ?
            • 我做到了,对不起。我澄清了上述评论。
            • 啊,这个脚本的目的是在bash中定义一些函数,比如“workon”。你有它的来源:bitbucket.org/dhellmann/virtualenvwrapper/src/…
            【解决方案11】:

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

            【讨论】:

              【解决方案12】:

              我已将 .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
              

              【讨论】:

                【解决方案13】:

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

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

                【讨论】:

                  猜你喜欢
                  • 2014-08-23
                  • 2014-02-17
                  • 2014-05-24
                  • 2018-07-15
                  • 2020-10-21
                  • 2020-10-28
                  • 2017-02-11
                  • 1970-01-01
                  • 2010-10-18
                  相关资源
                  最近更新 更多