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

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


当前回答

解决问题

尝试使用——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"

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

其他回答

我也遇到过同样的问题,我是这样解决的:

The issue occurred to me because I installed virtualenv via pip as a regular user (not root). pip installed the packages into the directory ~/.local/lib/pythonX.X/site-packages When I ran pip as root or with admin privileges (sudo), it installed packages in /usr/lib/pythonX.X/dist-packages. This path might be different for you. virtualenv command gets recognized only in the second scenario So, to solve the issue, do pip uninstall virtualenv and then reinstall it with sudo pip install virtualenv (or install as root)

如果你用

pip install virtualenv

你需要逃离

sudo /usr/bin/easy_install virtualenv

将它放在/usr/local/bin/中。

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

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

sudo pip uninstall virtualenv

sudo -H pip install virtualenv

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

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

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

在将MacOS Monterey从12.5.1升级到12.6之后,我再也不能运行virtualenv了。因为我在我的mac上安装了brew,安装如下:

$ brew install virtualenv
...
==> Installing virtualenv
==> Pouring virtualenv--20.16.5.monterey.bottle.tar.gz
    /usr/local/Cellar/virtualenv/20.16.5: 949 files, 20.3MB
==> Running `brew cleanup virtualenv`...
...

当然,brew也决定升级我拥有的各种其他包,但virtualenv随后又可用了。