尽管我做了各种尝试,但还是无法让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中的路径

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

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


当前回答

在我的例子中,我运行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

从那里获取location的部分到.local部分,在本例中是/home/user/.local/。virtualenv命令可以在/home/user/.local/bin/virtualenv目录下找到。

然后可以运行/home/user/之类的命令。本地/ bin / virtualenv newvirtualenv。

其他回答

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

3个命令和一切工作!

解决问题

尝试使用——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找不到程序的原因。

解决方案

我们可以用很多方法来解决这个问题:

我们可以通过修改pip选项直接安装到特定目录(不推荐)。 在/usr/local/bin或类似目录下创建适当的符号链接。 附加/home/manos/.local/bin到PATH。 安装sudo直接安装到/usr/local/bin

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

添加到~/.profile:

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

登出并再次登入,它应该工作。

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

在我的例子中,我运行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

从那里获取location的部分到.local部分,在本例中是/home/user/.local/。virtualenv命令可以在/home/user/.local/bin/virtualenv目录下找到。

然后可以运行/home/user/之类的命令。本地/ bin / virtualenv newvirtualenv。

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

sudo pip uninstall virtualenv

sudo -H pip install virtualenv

就是这样。它开始起作用了。

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