-bash: /usr/bin/virtualenvwrapper.sh: 没有那个文件或目录。

22

我无法弄清楚shell在服务器登录时尝试运行/usr/bin/virtualenvwrapper.sh的位置。我希望永久卸载virtualenvwrapper,而不仅仅是从shell实例中删除。我曾尝试使用pip uninstall virtualenvwrapper来卸载它,但每次我登录服务器时都会收到错误消息-bash:/usr/bin/virtualenvwrapper.sh: No such file or directory,就好像有一些剩余的残留物。昨天我做了很多尝试,我不能记住所有的更改或我如何使这种情况发生。它在哪里执行对virtualenvwrapper.sh的搜索?

补充信息:

$ echo $PATH
/usr/lib64/qt-3.3/bin
/usr/local/bin/ibm/lsf/9.1/linux2.6-glibc2.3-x86_64/etc
/usr/local/bin/ibm/lsf/9.1/linux2.6-glibc2.3-x86_64/bin
/usr/local/bin
/bin
/usr/bin
/usr/local/sbin
/usr/sbin
/sbin/usr/local/bin/CASAVA-1.8.2/bin
/usr/local/bin/blast
/usr/local/bin/mirdeep2
/usr/local/bin/velvet

$ sudo vim ~/.bashrc
1 # .bashrc
2
3 # Source global definitions
4 if [ -f /etc/bashrc ]; then
5         . /etc/bashrc
6 fi
7
8 # User specific aliases and functions

还要检查/etc/bash.bashrc文件是否有使用。 - Kiloreux
我没有 /etc/bash.bashrc。它是空的。 - user1807271
你有检查过你的 /.bashrc、/.bash_profile、~/.bash_login 和 ~/.profile 里是否存在 "/usr/bin/virtualenvwrapper.sh" 吗? - njachowski
找到了!它在 ~/.bash_profile。谢谢。你能回答一下吗,这样我就可以标记为正确了吗? - user1807271
1
完成!谢谢 @user1807271 - njachowski
9个回答

49

在ubuntu 12.04 LTS上,通过pip安装,它会被安装到

/usr/local/bin/virtualenvwrapper.sh

如果你正在使用Ubuntu 16.04或更高版本,它会被安装到

~/.local/bin/virtualenvwrapper.sh

1
我在树莓派3和4上也需要export VIRTUALENVWRAPPER_ENV_BIN_DIR=bin。不确定为什么或是否特定,因为我只是“想让它工作”。 - Hugh Barnard

11

建立虚拟环境 现在,在主目录中右键单击并选择“在终端中打开”选项,以在终端中打开您的终端。您也可以同时按下键盘上的CTRLALTT键来自动打开终端应用程序。

您首先需要创建一个特殊的目录,用于保存所有虚拟环境。因此,请继续创建一个名为virtualenv的新隐藏目录。

$ mkdir .virtualenv

现在您应该为Python3安装pip。
$ sudo apt install python3-pip

确认pip3已安装。

$ pip3 --version

现在通过pip3安装virtualenv。
$ pip3 install virtualenv

要找到 virtualenv 安装的位置,输入以下命令:

$ which virtualenv

通过pip3安装virtualenvwrapper:

$ pip3 install virtualenvwrapper

我们将修改您的.bashrc文件,添加一行代码来调整每个新的虚拟环境使用Python 3。我们将指向上面创建的目录(.virtualenv)以及virtualenv和virtualenvwrapper的位置。现在使用Vim编辑器打开.bashrc文件。
$ vim .bashrc

如果您尚未使用Vim编辑器或计算机上没有安装它,现在应该安装它。这是一款广泛使用的Linux编辑器,其使用原因非常充分。
$ sudo apt install vim

安装 Vim 后,通过在终端中输入 vim .bashrc 命令打开 .bashrc 文件。定位到 .bashrc 文件底部,按下 i 键进入 Vim 的插入模式,并添加以下行:

#Virtualenvwrapper settings:
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_VIRTUALENV=/home/your_username/.local/bin/virtualenv
source ~/.local/bin/virtualenvwrapper.sh

完成后,按esc键。然后输入:wq并按Enter键。此命令将保存并退出Vim编辑器。完成后,请关闭并重新打开终端。

要在Python3中创建虚拟环境并立即激活它,请在终端中使用以下命令:

$ mkvirtualenv name_of_your_env

您需要确认此环境已设置为Python3:

$ Python -V

使用deactivate命令来停用环境。

$ deactivate

要列出所有可用的虚拟环境,请在终端中使用workon命令或lsvirtualenv命令(与workon相同的结果,但以花哨的方式显示)。
$ workon

$ lsvirtualenv

要激活特定的环境,请使用workon + 您的环境名称:

$ workon name_of_your_env

以下是几个有用的命令,你可能某天需要使用:

Rmvirtualenv 会删除位于你的 .virtualenv 目录中特定虚拟环境。

$ rmvirtualenv name_of_your_env

Cpvirtualenv将现有的虚拟环境复制到新的虚拟环境并激活它。

$ cpvirtualenv old_virtual_env new_virtual_env

干得好!您现在已经创建了第一个独立的Python 3环境。


很棒的答案,涵盖了所有内容。下次还可以添加命令“source .bashrc”以重新加载Bash脚本,这对使用远程实例的人非常有帮助。 - yash
这个问题询问的是如何移除这个实用程序,而不是如何恢复它。 - tripleee

9

当您使用bash shell登录终端时,可能会运行一些文件。

您应该检查 ~/.bashrc, ~/.bash_profile, ~/.bash_login~/.profile 是否有 "/usr/bin/virtualenvwrapper.sh"。

很可能其中一个文件在登录时被运行,并包含您卸载的缺失脚本。


没错。我在我的.bash_profile中有一行与旧项目相关的本地环境使用。将该行注释或删除,然后你就可以开始了。谢谢 - Anas

8
可能您的Python包安装在其他地方。因此,请尝试以下操作:

pip install package-name -t /path/to/install

$ which python
/home/tesla/miniconda3/bin/python

或者
$ which virtualenvwrapper.sh
/home/tesla/miniconda3/bin/virtualenvwrapper.sh    

检查Python安装的位置。在我的情况下,我使用的是Miniconda,因此系统找不到文档中提到的位置。 如果上述位置不是/usr/local/bin/virtualenvwrapper.sh, 那么现在使用:

source /home/tesla/miniconda3/bin/virtualenvwrapper.sh

应该有效。

2022年11月更新:

我建议使用pipenv (官方文档) 创建和管理虚拟环境。


我的 virtualenvwrapper.sh 位于 "/Library/Frameworks/Python.framework/Versions/3.9/bin/virtualenvwrapper.sh" 而不是 "/usr/local/bin"。这对我有效。 - Desi Pilla

5

对于未来有此疑问的人,virtualenvwrapper.sh脚本现在位于Ubuntu 20.04.1 LTS的/usr/share/virtualenvwrapper/virtualenvwrapper.sh(至少我在我的虚拟机中是这样)。

可悲的是,我不能只评论上述位置,以便将其全部放在一起,因为新用户声望不够。


我的Pop!_OS 21.04上的矿位在Tarique的帖子所示位置。Ubuntu用户应该谨慎操作。如果使用本机Ubuntu 21.04 LTS的用户能够评论他们的位置,那将有助于澄清当前稳定的Ubuntu LTS的现状。 - Urthor
谢谢,这在Debian 11 Bullseye上也是正确的。为什么他们要移动这些东西而不告诉任何人呢? - cardamom

2

sudo -H pip3 install virtualenvwrapper

我曾遇到类似的问题,安装失败是因为~/.cache/pip和~/.cache/pip/http不属于当前用户。使用-H或--set-home选项进行安装解决了我的问题。


2

已经由@Tarique确认适用于Ubuntu 18。包装器的shell脚本virtualenvwrapper.sh位于- ~/.local/bin/

(base) dhankar@dhankar-1:~/opencv_cuda$ cd ~/.local/bin/
(base) dhankar@dhankar-1:~/.local/bin$ ls -ltr
total 100
-rwxr-xr-x 1 dhankar dhankar 41703 Jul 23 20:56 virtualenvwrapper.sh
-rwxr-xr-x 1 dhankar dhankar  2210 Jul 23 20:56 virtualenvwrapper_lazy.sh
-rwxr-xr-x 1 dhankar dhankar   259 Jul 23 20:56 virtualenv

1

在我的情况下,我在Ubuntu 20中找到了这个脚本:

/usr/share/virtualenvwrapper/

1
我也遇到了同样的问题,但这个方法对我有用:-
  1. 创建一个目录来保存虚拟环境。mkdir $HOME/.virtualenvs
  2. .bashrc中添加一行export WORKON_HOME=$HOME/.virtualenvs
  3. .bashrc中添加一行source /path/to/this/file/virtualenvwrapper.sh
  4. 运行:source ~/.bashrc
  5. 运行:mkvirtualenv temp
  6. 这次,“temp”环境被包含在内。
  7. 运行:workon temp
  8. 虚拟环境已激活。
如果您使用的是Ubuntu 20,则在~/.bashrc中使用下面给出的代码。
export WORKON_HOME=~/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=~/.local/bin/virtualenv
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source ~/.local/bin/virtualenvwrapper.sh

1
第三行应该是 ~/.local/bin/virtualenv,其中有一个空格。 - Sam Chiu
问题是如何删除此实用程序,而不是如何恢复它。 - tripleee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接