无法在 Jupyter notebook 中停用 virtualenv python

Unable to de-activate virtual env in Jupyter notebok python

我已经提到了这个相关的 post 但它没有帮助。请参考以下详情

我正在学习 python 虚拟环境并尝试执行一些基本命令。

虽然我可以激活 virtualenv,但我无法取消激活它。

jupyter notebbok 文件当前在路径/home/abcd

下面是我试过的

!mkdir python-virtual-environments
!cd python-virtual-environments
!virtualenv env
!. env/bin/activate   # here `source` didn't work. So, I replaced it with `.` and it started working
!. deactivate # doesn't work. I tried `! deactivate` but it doesn't work

我收到以下错误

**`/bin/sh: 1: .: deactivate: not found`**

我有两个问题

a) 如何停用我创建的 virtualenv env?正确的命令是什么?

b) 为什么 env 文件夹会创建在我当前的工作目录中?根据mkdircd命令,它不应该在python-virtual-environments下吗?

对于 Windows(用 Windows 10 测试):

deactivate 与您的激活脚本位于同一文件夹中。

因此,要停用它,还要将其与前置路径一起使用:env/scripts/deactivate

How to deactivate the virtualenv that I created env? What's the proper command?

只需重新启动内核 - 就可以了。或者,只需执行 deactivate.

Why is the env folder created in my present working directory? Shouldn't it be under python-virtual-environments based on mkdir and cd commands?

每次使用 ! 命令时,都会创建一个新的 shell 来执行该命令——换句话说,当您 cd 进入文件夹时,但下一个命令又回到了根目录。因此,你可以这样做:

!mkdir python-virtual-environments && cd python-virtual-environments && virtualenv env && source python-virtual-environments/env/bin/activate

然而,应该提到的是,这实际上并没有激活 Jupyter notebook 中的 virtualenv,因为这根本不是 virtualenvs 的工作方式。虚拟环境将包含实际的 Python 可执行文件以及所有相关的 pip 可安装包。除非您稍后通过 !python 命令调用 Python,否则通过笔记本获取它不会有太大作用。