找不到Virtualenv命令

Ari*_*ial 162 python macos virtualenv

virtualenv尽管做了各种尝试,我还是无法上班.我virtualenv使用以下命令在MAC OS X上安装:

pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

并且还加入了PATH我的.bash_profile.每次我尝试运行该virtualenv命令时,它返回:

-bash: virtualenv: command not found
Run Code Online (Sandbox Code Playgroud)

每次我跑pip install virtualenv,它返回:

Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Run Code Online (Sandbox Code Playgroud)

我明白在mac中,virtualenv应该正确安装

/usr/local/bin
Run Code Online (Sandbox Code Playgroud)

virtualenv确实安装/usr/local/bin,但每当我试图运行virtualenv命令,该命令没有找到.我也试过virtualenv在目录中运行命令/usr/local/bin,它给了我相同的结果:

-bash: virtualenv: command not found
Run Code Online (Sandbox Code Playgroud)

这些是我添加到.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
Run Code Online (Sandbox Code Playgroud)

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

Tal*_*sar 276

如果你通过运行安装它

pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

你需要做的是运行:

sudo /usr/bin/easy_install virtualenv
Run Code Online (Sandbox Code Playgroud)

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

  • 输出是“sudo:/usr/bin/easy_install:找不到命令” (18认同)
  • 谢谢你 - 但我希望我知道这里有什么巫术 - “easy_install”做了什么常规 pip 不做的事情?即为什么这有效? (4认同)
  • 这在 MacOs `python -m venv venv_name` 上对我有用 (2认同)

vet*_*yan 128

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

  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身份安装)

  • 我按照你的解决方案得到了消息"......如果用sudo执行pip,你可能需要sudo的-H标志".最后sudo -H pip install virtualenv为我完成了这项工作(在OS X上),谢谢 (6认同)
  • 如果您的机器上没有 root 权限怎么办? (2认同)

Lui*_*ins 31

最简单的答案.只是:

pip uninstall virtualenv
Run Code Online (Sandbox Code Playgroud)

然后:

pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

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

pip install --user virtualenv
Run Code Online (Sandbox Code Playgroud)

  • 这是使用brew 的Mac OS X 的方法。 (3认同)
  • 哇!这就是对我有用的技巧。顺便说一下,我正在使用`pyenv` (2认同)

小智 29

我遇到过同样的问题。我使用以下步骤使其工作

sudo pip uninstall virtualenv

sudo -H pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

这就对了。它开始工作了。

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

  • 它为我解决了完全相同的问题...为什么它没有被检查为解决方案? (2认同)

sam*_*sam 27

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

sudo apt-get install python-virtualenv
Run Code Online (Sandbox Code Playgroud)

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


Kry*_*ski 23

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

当我安装时virtualenv,sudo pip3 install virtualenv我没有virtualenv在我的命令行下.

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

  1. 卸载以前的安装.
  2. virtualenv通过调用安装前切换到超级用户帐户sudo su
  3. virtualenv通过电话安装pip3 install virtualenv
  4. 最后,您应该可以virtualenv从两个帐户usersuper user帐户访问.


小智 19

python3 -m virtualenv virtualenv_name   
Run Code Online (Sandbox Code Playgroud)

或者

python -m virtualenv virtualenv_name
Run Code Online (Sandbox Code Playgroud)

  • 为我工作:windwos 10 - 64 字节中的“python -m virtualenv myvirtualenv”。 (2认同)

小智 16

找到了这个解决方案,这对我来说非常有效。

sudo -H pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

-H 将其设置为 HOME 目录,这似乎是大多数人的问题。


You*_*sef 16

您遇到此错误:

zsh: command not found: virtualenv
Run Code Online (Sandbox Code Playgroud)

因为很可能您尝试安装 virtualenv 而没有事先输入 sudo 。

如果您尝试将其添加到 /usr/local/bin ,这可能会导致语法错误,因为软件包未正确安装/复制:

SyntaxError: invalid syntax

  File "build/bdist.macosx-12.0-x86_64/egg/platformdirs/__main__.py", line 16
    def main() -> None:
               ^
Run Code Online (Sandbox Code Playgroud)

如果您尝试在没有 sudo 权限的情况下通过 pip 安装 virtualenv,则需要首先卸载它:

pip3 uninstall virtualenv
Run Code Online (Sandbox Code Playgroud)

然后使用 sudo 安装它:

sudo pip3 install virtualenv
Run Code Online (Sandbox Code Playgroud)

接下来你只需要激活环境:

virtualenv env 
source env/bin/activate 
Run Code Online (Sandbox Code Playgroud)


Pit*_*kos 12

找出问题

尝试使用--verbose标志进行安装

pip install virtualenv --verbose
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样

  ..
  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...
Run Code Online (Sandbox Code Playgroud)

从输出中,我们可以看到它已安装在,/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
Run Code Online (Sandbox Code Playgroud)

就我而言,我们可以清楚地看到它/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"
Run Code Online (Sandbox Code Playgroud)

注销并再次登录,它应该可以工作。


Bil*_*adj 11

亲身。我执行了您在全新 Ubuntu 20 安装中执行的相同步骤(除了我使用了 pip3)。我遇到了同样的问题,我记得我是这样解决的:

python3 -m virtualenv venv 
Run Code Online (Sandbox Code Playgroud)

链接以了解-m <module-name>符号。


Bou*_*mas 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/


Bor*_*dov 8

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


Dej*_*ejv 8

就我而言,我跑来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
Run Code Online (Sandbox Code Playgroud)

从那个位置抓取到该位置的.local一部分,在这种情况下为/home/user/.local/。您可以在下找到virtualenv命令/home/user/.local/bin/virtualenv

然后,您可以运行命令/home/user/.local/bin/virtualenv newvirtualenv


Ver*_*Ray 6

确保它virtualenv是可执行的。

如果virtualenv未找到,则运行完整路径 ( /usr/local/bin/virtualenv) 应该可以。


Bob*_*obi 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
Run Code Online (Sandbox Code Playgroud)


小智 5

在带有 pip 的 AWS 安装的 ubuntu 18.4 上无法正常工作。使用 apt-get install 问题为我解决了。

sudo apt-get install python-virtualenv
Run Code Online (Sandbox Code Playgroud)

并检查

virtualenv --version
Run Code Online (Sandbox Code Playgroud)


小智 5

这适用于 Ubuntu 18 及更高版本(在以前的版本中未测试):

sudo apt install python3-virtualenv
Run Code Online (Sandbox Code Playgroud)


小智 5

我有同样的问题很长一段时间。我通过运行这两个命令解决了它,第一个是安装第二个是激活env:

python3 -m pip install virtualenv
python3 -m virtualenv yourenvname
Run Code Online (Sandbox Code Playgroud)

请注意,我正在使用python3python如果python3失败,您可以将其更改为。谢谢。