无法在 Jupyter notebook python 中停用 virtualenv
Posted
技术标签:
【中文标题】无法在 Jupyter notebook python 中停用 virtualenv【英文标题】:Unable to de-activate virtual env in Jupyter notebok python 【发布时间】:2020-10-12 01:05:35 【问题描述】:我已经提到了这个相关的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
文件夹?根据mkdir
和cd
命令,它不应该在python-virtual-environments
下吗?
【问题讨论】:
您使用的是哪个操作系统? 我使用的是 Windows 10 【参考方案1】:如何停用我创建的虚拟环境?正确的命令是什么?
只需重新启动内核 - 就可以了。或者,只需执行deactivate
。
为什么在我当前的工作目录中创建了 env 文件夹?不应该在基于mkdir和cd命令的python-virtual-environments下吗?
每次您使用!
命令时,您都在创建一个执行该命令的新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,否则通过笔记本获取它不会有太大作用。
【讨论】:
感谢您的回复。赞成。但是当我输入env/bin/deactivate
时,我得到这个错误消息/bin/sh: 1: .: Can't open env/bin/deactivate
...是因为没有deactivate file
吗?
抱歉,已解决。 deactivate
是一个变量,在您获取 activate
文件后可供您使用。
对不起,我是 Python 新手,我不明白你在说什么。我很抱歉。我正在关注一个教程并激活了一个虚拟环境,现在我想停用它。由于我的env/bin
下没有deactivate
文件,我们现在该怎么办?我没有做任何更改或删除bin
文件夹下的文件。为什么那个文件不见了?
检查上面的评论回复(在此线程中,在您之前 15 秒发布)。
然而:virtualenv
不打算在 Jupyter notebook 中使用。不仅如此,它不会像你希望的那样工作。【参考方案2】:
对于 Windows(使用 Windows 10 测试):
deactivate
与您的激活脚本位于同一文件夹中。
所以要停用也可以使用前置路径:env/scripts/deactivate
【讨论】:
嗨@Alexander Kosik,当我输入env/bin/deactivate
时,我收到此错误消息/bin/sh: 1: .: Can't open env/bin/deactivate
。
是不是因为我的bin
文件夹下没有deactivate文件?
手动检查 python-virtual-environments/env/bin/deactivate
中是否存在停用文件,这必须是这种情况,并根据您当前的位置在前面加上一个路径来调用它
不,文件不存在。
@AlexanderKosik deactivate
是一个由env/bin/activate
部分提供的shell 函数——它本身不是一个文件。如果您要在终端中使用source env/bin/activate
,您只需执行deactivate
即可停用它——而不是运行/获取另一个shell 脚本。希望这可以清除它:)以上是关于无法在 Jupyter notebook python 中停用 virtualenv的主要内容,如果未能解决你的问题,请参考以下文章
在Pytorch中安装jupyetr notebook后,输入jupyter notebook命令无法直接跳出浏览界面
无法在 Jupyter Notebook 中导入 TensorFlow