如何解决 /usr/local/bin/virtualenv: /usr/bin/python: bad interpreter: No such file or directory 这个问题?

7

当我尝试在Ubuntu 18.04上使用virtualenv时,出现以下错误:

bash: /usr/local/bin/virtualenv: /usr/bin/python: 错误的解释器: 没有那个文件或目录

Python 2和3正常工作:

josir@desenv16:~/bin$ which python3
/usr/bin/python3
josir@desenv16:~/bin$ python3
Python 3.6.9 (default, Apr 18 2020, 01:56:04) 
[GCC 8.4.0] on linux

我已经尝试卸载virtualenv:

sudo apt-get purge --auto-remove virtualenv
sudo apt-get purge --auto-remove python-virtualenv
sudo apt-get purge --auto-remove python3-virtualenv

但是当我重新安装时,错误仍然存在。

2个回答

4
错误出现在'/usr/local/bin/virtualenv',它的第一行(shebang)是#!/usr/bin/python,但你的系统中没有这个文件。我认为导致这种情况发生的事件流是:长时间以前,你使用pip(而不是apt)安装了virtualenv并将/usr/local/bin放在了$PATH的前面。然后你升级了系统,该升级删除了/usr/bin/python,现在你只有/usr/bin/python3

现在你必须决定走哪条路:apt还是pip。如果你选择apt,则要删除/usr/local/bin/virtualenv
如果你选择pip:我的建议是尽可能卸载使用apt安装的python包;重新安装virtualenv;这应该是使用apt安装的唯一额外包。对于每个项目/任务,都要创建虚拟环境并使用pip安装软件包。
PS. 个人经验:几年前我从apt方式切换到pip
PPS. 避免使用sudo pip,不要覆盖系统安装。可以安装到虚拟环境或使用pip install --user

太棒了!感谢您提供如此有用的解释,让我避免了更多的挫败和浪费时间。这个答案应该得到更多的投票! - ianyoung

-1

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