关闭 Pipenv 环境

如何关闭 pipenv 环境?

使用其他工具,我可以做类似于 source deactivate的事情,但是在这里没有影响。

创造一个环境:

pipenv --three

激活环境:

source $(pipenv --venv)/bin/activate

但是怎么解除呢?

90420 次浏览

更新 : 查看下面的其他答案。正如已经解释过的,这适用于 virtualenv,但是 pipenv的工作方式不同。

只需在命令行中键入 deactivate

使用 shell 命令 exit也可以。

当我使用 deactivate时,这种方法对我很有效,但仍然留下了错误:

Shell for UNKNOWN_VIRTUAL_ENVIRONMENT already activated.
No action taken to avoid nested environments.

在使用 exit之后,我可以成功地切换 pipenv实例。这很可能是一个错误,我也许应该报告它。

为了进一步阐述 Williams 的答案,预期的工作流程将使用 pipenv shell输入 viralenv。当您以这种方式激活 viralenv 时,控制台输出现在指示使用 exit:

产生环境 shell (/bin/zsh)。

尝试使用 deactivate退出 viralenv 将使 pipenv 处于混乱状态,因为您仍然处于产生的 shell 实例中,而不是处于激活的 viralenv 中。

首先“停用”,然后“退出”你将离开虚拟环境。目前为止,这为我工作。

请从 贡献者的角度检查这个主题的答案:

Https://github.com/pypa/pipenv/issues/84#issuecomment-275056943

剧透:

Pipenv 使用 viralenv 路径启动一个新的 shell 会话,而不是在当前 shell 会话中更改路径。这就是为什么停用不起作用。您需要退出 shell 会话。Exit 命令或 CTRL-d 就可以解决这个问题。

只要输入“ exit”,它就会带你离开 shell。

如果您使用“ deactive”,那么当您再次尝试在 shell 中输入时,可能会得到这个错误。

Shell for UNKNOWN_VIRTUAL_ENVIRONMENT already activated.
No action taken to avoid nested environments.

因此,为了快速访问,最好使用“ exit”。

从 pipenv 虚拟环境中取消激活,只需运行以下命令即可。

deactivate

导致的问题是由于前面的 shell 操作在另一个目录中,所以我所做的是退出我的新目录通过 ctrl + d 退出终端。之后,我通过 alt + t 打开终端,将目录构建到指定的目录,然后运行 pipenv shell 命令。