我想通过命令
deactivate
停用虚拟环境,但不小心写了deactivate()
。然后它打开控制台
function>
我输入了一些符号,现在,当我调用命令
deactivate
时,它尝试将这些符号作为命令执行,并且显然给出了没有这样的命令的错误。我尝试在其中输入 deactivate
,但没有成功。
如何将
deactivate
恢复到其原始行为?
当你写下
deactivate()
时,你告诉 shell 你开始用这个名字定义一个函数。它正在等待您完成此操作,一旦您完成开始的操作,它就会恢复正常。
您不想重新定义
deactivate
,所以可能可以通过简单的 ctrl-C 来打破这个局面。
如果您已经设法重新定义
deactivate
,则没有直接的方法可以将其返回到之前的定义,但不用担心;它不会粘住,所以只需启动一个新的 shell(也许退出当前的 shell,或者如果您仍有未完成的业务,则将其保持打开状态)。
这假设您使用的是 Bourne 兼容的 shell,例如 Zsh 或 Bash。在这种情况下,它们对于 ctrl-C 的行为恰好相同。
当您
activate
虚拟环境时,您基本上会更改当前运行的 shell 实例中的一些设置。所有这些东西都是短暂的,一旦 shell 退出就会消失。
同样,您定义的函数对于当前运行的 shell 实例来说是本地的,并且不会继承;要使函数永久存在,您必须将其定义放入 shell 的启动文件之一中。