找不到Virtualenv命令

问题描述 投票:132回答:17

尽管做了各种尝试,我还是无法让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命令时,都找不到该命令。我也尝试在virtualenv目录中运行/usr/local/bin命令,它给了我相同的结果:

-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

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

python macos virtualenv
17个回答
261
投票

如果你通过运行安装它

pip install virtualenv

你需要做的是运行:

sudo /usr/bin/easy_install virtualenv

它把它放在/ usr / local / bin /中。默认情况下,上面的目录应该在你的PATH中;否则,请相应地编辑.zshrc(或.bashrc)。


4
投票

我认为您的问题可以使用简单的符号链接来解决,但您正在创建指向错误文件的符号链接。据我所知,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

4
投票

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

sudo apt-get install python-virtualenv

并检查

virtualenv --version

3
投票

同样的问题:所以我只是做了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安装在'/Users/brahim/Library/Python/2.7/bin'中,该脚本不在PATH上。考虑将此目录添加到PATH,或者如果您希望禁止此警告,请使用--no-warn-script-location。

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


2
投票

确保virtualenv是可执行的。

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


2
投票

如果您使用的是Linux,请打开终端并输入virtualenv halfway并使用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

1
投票
apt update
apt upgrade
apt install ufw python virtualenv git unzip pv

3命令和一切正常!


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
投票

python3 -m virtualenv virtualenv_name

python -m virtualenv virtualenv_name


-4
投票
sudo apt-get install python-virtualenv

119
投票

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

  1. 这个问题发生在我身上,因为我作为普通用户(不是root用户)通过pip安装了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身份安装)

29
投票

最简单的答案。只是:

pip uninstall virtualenv

然后:

pip install virtualenv

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

pip install --user virtualenv

27
投票

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

sudo apt-get install python-virtualenv

对于Mac OS,您可以尝试使用brew


21
投票

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

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

我通过以下步骤解决了这个问题:

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

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

希望这可以帮助。我的建议是更多地研究venvs。这是一个很好的资源:https://www.dabapps.com/blog/introduction-to-pip-and-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"

退出并重新登出,它应该工作。


8
投票

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


5
投票

就我而言,我运行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: [email protected]
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等命令。

© www.soinside.com 2019 - 2024. All rights reserved.