【问题标题】:Virtualenv Command Not Found未找到 Virtualenv 命令
【发布时间】:2015-09-16 22:36:03
【问题描述】:

尽管进行了各种尝试,我还是无法让virtualenv 工作。我在 MAC OS X 上安装了virtualenv,使用:

pip install virtualenv

并且还将PATH 添加到我的.bash_profile 中。每次我尝试运行virtualenv 命令时,它都会返回:

-bash: virtualenv: command not found

每次我运行pip install virtualenv,它都会返回:

Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

我知道在mac中,virtualenv应该正确安装在

/usr/local/bin

virtualenv确实安装在/usr/local/bin中,但是每当我尝试运行virtualenv命令时,都找不到该命令。我还尝试在/usr/local/bin 目录中运行virtualenv 命令,它给了我相同的结果:

-bash: virtualenv: command not found

这些是我添加到我的 .bash_profile 中的 PATH

export PATH=$PATH:/usr/local/bin
export PATH=$PATH:/usr/local/bin/python
export PATH=$PATH:/Library/Framework/Python.framework/Version/2.7/lib/site-packages

有什么解决方法吗?为什么会这样?

【问题讨论】:

  • 尝试将符号链接添加到 /usr/local/bin 中的 virtualenv 可执行文件
  • 我应该在哪里创建符号链接?尽管我尝试在要使用 virtualenv @justinfay 的目录中添加符号链接,但它仍然无法正常工作
  • 通过查看上面的路径可能类似于,将命令中的最后一个路径替换为实际 virtualenv 可执行文件的路径:$ ln -s /usr/bin/virtualenv /Library/Framework/Python.framework/Version/2.7/lib/site-packages/virtualenv/virtualenv.py
  • 对我有用的是添加符号链接ln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py /usr/local/bin/virtualenv
  • 在 lubuntu 中不起作用

标签: python macos virtualenv


【解决方案1】:

如果你安装了它

pip install virtualenv

你需要跑

sudo /usr/bin/easy_install virtualenv

把它放在/usr/local/bin/

以上目录默认应该在你的PATH;否则,请相应地编辑您的 .zshrc(或 .bashrc)。

【讨论】:

  • Amazon Linux 的 AWS EC2 实例上,如果您正在尝试 Let's Encrypt 的 certbot,请尝试此解决方案。这是解决我的 virtualenv 问题的唯一建议。
  • 输出为sudo: /usr/bin/easy_install: command not found
  • 谢谢你 - 但我希望我知道这里的巫术是什么 - “easy_install”做了哪些常规 pip 没有做的事情?即为什么这有效?
  • 这在 MacOs 上对我有用 python -m venv venv_name
  • 这只有在 python 3.6+ 是使用 python 命令时的默认值时才最有可能。
【解决方案2】:

我遇到了同样的问题,这就是我解决它的方法:

  1. 这个问题发生在我身上,因为我通过 pip 作为普通用户(不是 root)安装了 virtualenv。 pip 将软件包安装到目录~/.local/lib/pythonX.X/site-packages
  2. 当我以 root 或管理员权限 (sudo) 运行 pip 时,它会在 /usr/lib/pythonX.X/dist-packages 中安装软件包。这条路对您来说可能会有所不同。
  3. virtualenv 命令仅在第二种情况下被识别
  4. 因此,要解决此问题,请执行 pip uninstall virtualenv,然后使用 sudo pip install virtualenv 重新安装(或以 root 身份安装)

【讨论】:

  • 我遵循了您的解决方案并收到消息“...如果使用 sudo 执行 pip,您可能需要 sudo 的 -H 标志”。最后 sudo -H pip install virtualenv 为我完成了这项工作(在 OS X 上),谢谢
  • 如果你的机器上没有 root 怎么办?
  • 解决了这个问题。我猜这个可以进入全局目录而不是--user
  • 当 pip 本身安装在 ~/.local/SOME_PATH 中时也会出现此问题。我cpsite-packages 目录中的所有内容编入/usr/lib/pythonx.x/site-packages,并将rm -rf 编入原始目录。
  • 第 4 步正是我想要的!我不知道如何从 ~/.local 中获取文件
【解决方案3】:

最简单的答案。只是:

pip uninstall virtualenv

然后:

pip install virtualenv

或者你可能用sudo安装了virtualenv,在这种情况下:

pip install --user virtualenv

【讨论】:

  • 哇!这就是我的诀窍。顺便说一句,我正在使用pyenv
  • 这是在 Mac OS X 上使用 brew 的方式。
  • 已经为此奋斗了数周,它一直在阻碍我在 python 项目上工作的有限时间,这是我在 mac 上工作的唯一解决方案。谢谢!
【解决方案4】:

在 Ubuntu 18.04 LTS 上,我也遇到了同样的错误。 以下命令有效:

sudo apt-get install python-virtualenv

【讨论】:

  • brew install python-virtualenv 不存在
  • 在我的 18.04 上像魅力一样工作,谢谢
  • 投票反对将apt 提升为apt-get 的继任者。
【解决方案5】:

我在 Mac OS X El Capitan 上遇到了同样的问题。

当我像 sudo pip3 install virtualenv 这样安装 virtualenv 时,我的命令行下没有 virtualenv

我按照以下步骤解决了这个问题:

  1. 卸载以前的安装。
  2. 在安装virtualenv之前通过调用sudo su切换到超级用户帐户
  3. 通过调用pip3 install virtualenv 安装virtualenv
  4. 最后,您应该能够从usersuper user 帐户访问virtualenv

【讨论】:

  • 适用于 macOS Big Sur 11.6
【解决方案6】:

我有同样的问题。我使用以下步骤使其工作

sudo pip uninstall virtualenv

sudo -H pip install virtualenv

就是这样。它开始工作了。

sudo -H----> sudo -H: 的使用将HOME 变量设置为目标用户的主目录。

【讨论】:

  • 它为我解决了完全相同的问题......为什么它没有被检查为解决方案?
  • 也适用于 Ubuntu。我在为数字海洋设置它时遇到了问题。这应该是解决方案。
【解决方案7】:
python3 -m virtualenv virtualenv_name   

python -m virtualenv virtualenv_name

【讨论】:

  • 在没有 3. python -m virtualenv 的情况下为我工作
  • 总是用python解决路径问题的好方法。
【解决方案8】:

找出问题

尝试使用--verbose 标志安装

pip install virtualenv --verbose

输出看起来像这样

  ..
  Using cached virtualenv-15.1.0-py2.py3-none-any.whl
  Downloading from URL https://pypi.python.org/packages/6f/86/3dc328ee7b1a6419ebfac7896d882fba83c48e3561d22ddddf38294d3e83/virtualenv-15.1.0-py2.py3-none-any.whl#md5=aa7e5b86cc8cdb99794c4b99e8d670f3 (from https://pypi.python.org/simple/virtualenv/)
Installing collected packages: virtualenv

  changing mode of /home/manos/.local/bin/virtualenv to 755
Successfully installed virtualenv-15.1.0
Cleaning up...

从输出中我们可以看到它安装在/home/manos/.local/bin/virtualenv,所以让我们确保 PATH 包含它。

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

在我的例子中,我们可以清楚地看到 /home/manos/.local/bin 完全丢失,这就是 shell 找不到程序的原因。

解决方案

我们可以通过多种方式解决这个问题:

  1. 我们可以通过摆弄 pip 选项直接安装到特定目录(不推荐)。
  2. /usr/local/bin 或类似处创建适当的符号链接。
  3. /home/manos/.local/bin 附加到 PATH。
  4. 安装为sudo直接安装到/usr/local/bin

最后两个选项可能是最明智的。最后一个解决方案是最简单的,所以我只展示解决方案 3。

将此添加到 ~/.profile:

PATH="$PATH:$HOME/.local/bin"

注销并重新登录,它应该可以工作。

【讨论】:

  • 这非常有效。它应该是公认的答案,并为详细解释 +1
【解决方案9】:

找到了这个解决方案,这对我来说非常有效。

sudo -H pip install virtualenv

-H 将其设置为 HOME 目录,这似乎是大多数人的问题。

【讨论】:

    【解决方案10】:

    就我而言,我运行pip show virtualenv 来获取有关 virtualenv 包的信息。我将看起来与此类似,并且还会显示包裹的位置:

    user@machine:~$ pip show virtualenv
    Name: virtualenv
    Version: 16.2.0
    Summary: Virtual Python Environment builder
    Home-page: https://virtualenv.pypa.io/
    Author: Ian Bicking
    Author-email: ianb@colorstudy.com
    License: MIT
    Location: /home/user/.local/lib/python3.6/site-packages
    Requires: setuptools
    

    从那里抓取位置部分直到.local 部分,在本例中为/home/user/.local/。您可以在/home/user/.local/bin/virtualenv 下找到 virtualenv 命令。

    然后您可以运行类似/home/user/.local/bin/virtualenv newvirtualenv 的命令。

    【讨论】:

      【解决方案11】:

      个人。我执行了与全新 Ubuntu 20 安装相同的步骤(除了我使用了 pip3)。我遇到了同样的问题,我记得我是这样解决的:

      python3 -m virtualenv venv 
      

      了解-m <module-name> 符号的链接。

      【讨论】:

        【解决方案12】:

        您说过每次运行pip install 都会得到Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages。您需要做的是:

        1. 更改目录(转到 virtualenv.py 所在的目录) cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
        2. 如果您执行ls,您将看到脚本在那里virtualenv.py
        3. 像这样运行脚本: python virtualenv.py --distribute /the/path/at/which/you/want/the/new/venv/at theNameOfTheNewVirtualEnv

        希望这会有所帮助。我的建议是更多地研究 venvs。这是一个很好的资源:@​​987654321@

        【讨论】:

          【解决方案13】:

          我遇到了麻烦,因为我使用 apt 安装 python-virtualenv 包。 为了让它工作,我必须用apt-get remove python-virtualenv 删除这个包并用pip install virtualenv 安装它。

          【讨论】:

          • 这留下了一个问题:为什么我的 python3-virtualenv 包坏了?
          【解决方案14】:

          确保virtualenv 是可执行的。

          如果未找到 virtualenv,运行完整路径 (/usr/local/bin/virtualenv) 应该可以工作。

          【讨论】:

            【解决方案15】:

            我认为您的问题可以使用简单的符号链接来解决,但您正在创建指向错误文件的符号链接。据我所知,virtualenv 已安装到 /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv,(您可以更改 Python 版本的数字)所以 command 用于创建 符号链接 应该是:

            ln -s /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv /usr/local/bin/virtualenv
            

            【讨论】:

            • 设置符号链接是我需要做的。谢谢。
            【解决方案16】:

            我很长一段时间都遇到了同样的问题。 我通过运行这两个命令解决了它,第一个是安装第二个是激活环境:

            python3 -m pip install virtualenv
            python3 -m virtualenv yourenvname
            

            请注意,我使用的是 python3,如果 python3 失败,您可以将其更改为 python。 谢谢。

            【讨论】:

              【解决方案17】:

              在 AWS 上使用 pip 安装的 ubuntu 18.4 无法正常工作。 使用 apt-get install 解决了我的问题。

              sudo apt-get install python-virtualenv
              

              并检查

              virtualenv --version
              

              【讨论】:

                【解决方案18】:

                同样的问题: 所以我只是做了pip uninstall virtualenv 然后pip install virtualenv

                pip install virtualenv --user
                

                收集 virtualenv 使用缓存的https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875bc8c2f58071c35d2efe84f747b64d523721dc2b5/virtualenv-16.0.0-py2.py3-none-any.whl 安装收集的包:virtualenv

                然后我得到了这个:

                脚本 virtualenv 安装在 PATH 上的“/Users/brahim/Library/Python/2.7/bin”中。 考虑将此目录添加到 PATH,或者,如果您希望禁止显示此警告,请使用 --no-warn-script-location。

                它清楚地说明了它的安装位置以及如何获取它

                【讨论】:

                  【解决方案19】:

                  如果您使用的是 Linux,请打开您的终端并输入 virtualenv 并使用 Tab 键自动完成。如果没有自动完成,请运行以下命令在您的系统上安装 virtualenv:

                  mycomp$sudo apt-get install virtualenv
                  //if you're already super user.
                  mycomp#apt-get install virtualenv
                  

                  您现在可以导航到要创建项目的位置并执行以下操作:

                  myprj$pip3 install virtualenv    
                  //to install python 3.5 and above  
                  myprj$virtualenv venv --python=python3.5  
                  //to activate virtualenv  
                  (venv)myprj$source venv/bin/activate  
                  (venv)myprj$deactivate
                  

                  【讨论】:

                  • 我升级到python 3.7。我一直在尝试安装 virtualenv,它总是会返回“错误:找不到满足 virtualenv 要求的版本(来自版本:无)”。我在某个地方读到它安装了 virtualenv 的某个 python 3.x 版本,但是试图简单地创建一个虚拟环境,没有用,它会返回错误,它不知道 virtualenv 命令。但它与您回答中的以下命令“virtualenv venv --python=python3.7”一起使用。之前没有做任何其他事情。以防它帮助其他人。 MacOS 环境。
                  【解决方案20】:

                  确保您正在使用

                  sudo
                  

                  在这种情况下,首先需要卸载 pipenv,然后使用 sudo 命令重新安装。

                  1. pip uninstall pipenv
                  2. sudo pip install pipenv

                  【讨论】:

                    【解决方案21】:

                    按照这些基本步骤设置虚拟环境

                    sudo pip install virtualenv virtualenvwrapper
                    sudo rm -rf ~/get-pip.py ~/.cache/pip
                    

                    我们需要更新我们的~/.bashrc

                    export WORKON_HOME=$HOME/.virtualenvs
                    source /usr/local/bin/virtualenvwrapper.sh
                    

                    ~/.bashrc 文件只是一个 shell 脚本,当你启动一个新终端时,Bash 就会运行它。您通常使用此文件来设置各种配置。在本例中,我们设置了一个名为 WORKON_HOME 的环境变量,以指向我们的 Python 虚拟环境所在的目录。然后我们从 virtualenvwrapper 加载任何必要的配置。

                    要更新您的~/.bashrc 文件,只需使用标准文本编辑器,nano 可能是最容易操作的。 一个更简单的解决方案是使用 cat 命令并完全避免使用编辑器:

                    echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
                    echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
                    echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc
                    

                    编辑 ~/.bashrc 文件后,我们需要重新加载更改:

                    source ~/.bashrc
                    

                    现在我们已经安装了 virtualenv 和 virtualenvwrapper ,下一步是实际创建 Python 虚拟环境 - 我们使用 mkvirtualenv 命令来完成。

                    mkvirtualenv YOURENV
                    

                    【讨论】:

                      【解决方案22】:

                      我正在学习 Angela Yu 的在线 iOS 课程,我遇到了同样的问题,而且当我尝试运行 virtualenv --python=/{myPath} {newVirtualEnvName} 时也遇到了权限被拒绝错误 13@

                      我通过以下方式解决了它:

                      1. 切换到sudo用户sudo su
                      2. 导航到我的目标文件夹(我希望我的新虚拟环境所在的位置),即。 /Users/muUserName/Environments/
                      3. 运行命令python -m virtualenv python27 其中python27是我的新虚拟环境的名称
                      4. 在我的 Environments 文件夹中创建了文件夹 pathon27,然后我就可以运行 source python27/bin/activate启动我的虚拟环境

                      【讨论】:

                      • 切换到 sudo su 对我有用,即使我想使用 python3 作为要创建的 venv 文件夹。尝试在本地安装时似乎是权限问题,除非以 root 身份显式登录,否则提升的 sudo 找不到正确的路径
                      【解决方案23】:

                      这适用于 ubuntu 18 及更高版本(未在以前的版本中测试):

                      sudo apt install python3-virtualenv
                      

                      【讨论】:

                        【解决方案24】:

                        对我来说,它安装在这个路径中(MacOS 上的 python 2.7): $HOME/Library/Python/2.7/bin

                        【讨论】:

                          【解决方案25】:

                          简单的答案是,如果你不是 sudo 用户,因为我不是。你需要添加你的 bin 文件夹的路径 (/home/myusername/.local/bin)。所以基本上命令行搜索这些路径中的哪个是命令你已经输入了。

                          export PATH=/home/b18150/.local/bin:/usr/bin:/bin
                          

                          在这里它将首先搜索local/bin,然后是/usr/bin,然后是/bin

                          【讨论】:

                            【解决方案26】:

                            您遇到了这个错误:

                            zsh: command not found: virtualenv
                            

                            因为很可能您尝试安装 virtualenv 而不事先输入 sudo。

                            如果您尝试将其添加到 /usr/local/bin,这可能会导致语法错误,因为软件包未正确安装/复制:

                            SyntaxError: invalid syntax
                            
                              File "build/bdist.macosx-12.0-x86_64/egg/platformdirs/__main__.py", line 16
                                def main() -> None:
                                           ^
                            

                            如果您尝试在没有 sudo 权限的情况下通过 pip 安装 virtualenv,您需要先将其卸载:

                            pip3 uninstall virtualenv
                            

                            然后使用 sudo 安装它:

                            sudo pip3 install virtualenv
                            

                            接下来你只需要激活环境:

                            virtualenv env 
                            source env/bin/activate 
                            

                            【讨论】:

                              【解决方案27】:
                              apt update
                              apt upgrade
                              apt install ufw python virtualenv git unzip pv
                              

                              3 个命令,一切正常!

                              【讨论】:

                              • 问题是mac OS,没有apt
                              【解决方案28】:
                              sudo apt-get install python-virtualenv
                              

                              【讨论】:

                              • 你看到他要的是 Mac OSX 吗?
                              猜你喜欢
                              • 2021-05-11
                              • 1970-01-01
                              • 2017-05-03
                              • 1970-01-01
                              • 2020-08-13
                              • 2016-04-09
                              • 1970-01-01
                              • 1970-01-01
                              相关资源
                              最近更新 更多