找不到Virtualenv命令


207

virtualenv尽管进行了种种尝试,我还是无法上班。我virtualenv使用以下命令安装在MAC OS X上:

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命令,该命令没有找到。我也尝试virtualenv在目录中运行命令/usr/local/bin,它给我相同的结果:

-bash: virtualenv: command not found

这些是我添加到.bash_profile中的路径

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

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


1
尝试在/ usr / local / bin中的virtualenv可执行文件中添加符号链接
— Justin Fay 2015年

我应该在哪里创建符号链接?尽管我尝试在要使用virtualenv的目录中添加符号链接,但仍无法正常工作@justinfay
— Arial

2
从上面的路径来看,可能是这样,将命令中的最后一个路径替换为实际virtualenv可执行文件的路径:$ ln -s /usr/bin/virtualenv /Library/Framework/Python.framework/Version/2.7/lib/site-packages/virtualenv/virtualenv.py
— Justin Fay 2015年

2
对我ln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py /usr/local/bin/virtualenv
— 有用的

在lubuntu中不起作用
— c24b

Answers:


336

如果您使用

pip install virtualenv

你需要跑步

sudo /usr/bin/easy_install virtualenv

把它放进去/usr/local/bin/。

上面的目录默认情况下应该在您的目录中PATH;否则,请相应地编辑您的.zshrc(或。bashrc)。


1
一直很乐于帮助@nguns
— Tal Avissar'6

在使用的AWS EC2实例上Amazon Linux,如果您尝试使用Let's Encrypt's certbot,请尝试此解决方案。这是解决我的virtualenv问题的唯一建议。
— emrahgunduz

2
你是最棒的!
— leon wu

6
输出是sudo: /usr/bin/easy_install: command not found
— Ced19年

2
谢谢你-但是我希望我知道这里有什么巫术-常规点子不能执行的“ easy_install”是什么?即为什么这项工作?
— Thomas Kimber

153

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

  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身份安装)

8
我按照您的解决方案进行操作,并收到消息“ ...如果使用sudo执行pip,则可能需要sudo的-H标志”。最后sudo -H pip install virtualenv为我完成了工作(在OS X上),谢谢
— smudo78 '16

1
如果您的计算机上没有root怎么办?
— user5359531

解决了问题。我猜这个可以进入全局目录而不是--user。

当pip本身安装在〜/ .local / SOME_PATH中时,也会发生此问题。我将dir中的cp所有内容都编site-packages入/usr/lib/pythonx.x/site-packages,并rm -rf编入了原始目录。
— yoon

47

最简单的答案。只是:

pip uninstall virtualenv

然后:

pip install virtualenv

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

pip install --user virtualenv

哇!这就是我的把戏。我使用pyenv的方式
— race_carr

这是使用brew进行Mac OS X的方法。
— TCSGrad

经过数周的努力,这一直困扰着我有限的时间从事python项目,这是在Mac上为我工作的唯一解决方案。谢谢!
— HellaDev

37

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

sudo apt-get install python-virtualenv

1
brew install python-virtualenv不存在
— 伦纳德

在我的18.04上像魅力一样工作,谢谢
— Nischaya Sharma

投票晋升apt为继任者apt-get。
— 灰胡子

24

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

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

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

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

15

找出问题

尝试使用--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. 我们可以通过点子选项直接安装到特定目录(不推荐)。
  2. 在/usr/local/bin或类似位置创建适当的符号链接。
  3. 附加/home/manos/.local/bin到PATH。
  4. 以sudo的形式安装以直接安装到 /usr/local/bin

最后两个选项可能是最明智的。最后一个解决方案是最简单的,因此我将仅介绍解决方案3。

将此添加到〜/ .profile:

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

注销并再次登录,它应该可以工作。


1
这工作得很好。它应该是详细解释公认的答案和+1
— 大卫程序员

13

python3 -m virtualenv virtualenv_name

python -m virtualenv virtualenv_name


在没有3.的情况下为我工作
— 。python

11

就我而言,我跑来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/。您可以在下找到virtualenv命令/home/user/.local/bin/virtualenv。

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


10

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

sudo pip uninstall virtualenv

sudo -H pip install virtualenv

这就对了。它开始工作了。

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


1
它为我完全解决了同样的问题...为什么不检查它作为解决方案?
— manuele

9

您说过,每次运行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

希望这可以帮助。我的建议是研究更多静脉。这是一个很好的资源:https : //www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/


8

我遇到了麻烦,因为我习惯于安装python-virtualenv软件包。要使其正常工作,我必须使用删除该软件包apt-get remove python-virtualenv并使用进行安装pip install virtualenv。


1
这就留下了一个问题:为什么我的python3-virtualenv软件包坏了?
— Dmitri DB

6

确保该virtualenv可执行文件。

如果virtualenv未找到,/usr/local/bin/virtualenv则应运行完整路径()。


5

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

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

设置符号链接是我所需要做的。谢谢。
— 柯比

5

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

sudo apt-get install python-virtualenv

并检查

virtualenv --version

4

同样的问题: 所以,我只是做了pip uninstall virtualenv 那么 pip install virtualenv

pip install virtualenv --user

使用缓存的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。

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


2

如果您使用的是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要求的版本(来自版本:无)”。我从某个特定的python 3.x版本中读到某处,它安装了virtualenv,但是尝试创建简单的虚拟环境却没有用,它会返回不知道virtualenv命令的错误。但是它可以从您的答案中使用以下命令:“ virtualenv venv --python = python3.7”。之前没有其他事情。万一它对其他人有帮助。MacOS环境。
— CarmenA

1

这在ubuntu 18及更高版本中有效(未经先前版本测试):

sudo apt install python3-virtualenv

0

请按照以下基本步骤设置虚拟环境

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


0

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

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

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

0

简单的答案是,如果您不是我(不是我)的sudo用户,则需要添加bin文件夹(/home/myusername/.local/bin)的路径。因此基本上,命令行会在您键入这些命令的路径中搜索哪个。

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

在这里它将先搜索local/bin然后/usr/bin再搜索/bin。


0

我有相同的问题很长时间了。我通过运行以下两个命令解决了这个问题,首先是安装,其次是激活env:

python3 -m pip install virtualenv
python3 -m virtualenv yourenvname

请注意,我使用python3,你可以把它改成只是python如果python3失败。谢谢。


-3
apt update
apt upgrade
apt install ufw python virtualenv git unzip pv

3个命令,一切正常!


问题是针对mac OS,没有问题apt
— Matteo

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.