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

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


当前回答

python3 -m virtualenv virtualenv_name   

or

python -m virtualenv virtualenv_name

其他回答

解决问题

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

我认为您的问题可以使用一个简单的符号链接来解决,但是您创建了指向错误文件的符号链接。据我所知,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安装时,你都会得到需求已经满足(使用——upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages。你需要做的是:

更改目录(转到virtualenv.py所在目录) cd /图书馆/框架/ Python.framework /版本/ 2.7 / lib / python2.7 /网站 如果你执行ls,你会看到脚本是virtualenv.py 像这样运行脚本: python virtualenv.py——分发/the/path/at/which/you/want/the/new/venv/at theNameOfTheNewVirtualEnv

希望这能有所帮助。我的建议是多研究venvs。这里有一个很好的资源:https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/

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