找不到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上也遇到了同样的问题。

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

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

  1. 卸载以前的安装。
  2. virtualenv安装前通过调用切换到超级用户帐户sudo su
  3. virtualenv通过调用安装pip3 install virtualenv
  4. 最后,您应该可以virtualenv同时从usersuper 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.