首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >conda更新后的conda环境中断

conda更新后的conda环境中断
EN

Stack Overflow用户
提问于 2020-03-22 08:23:11
回答 2查看 3.9K关注 0票数 3

在广泛使用conda一段时间之后,我昨天被要求更新它,现在事情看起来很糟。我不得不承认,我不是幕后所发生的事情的专家,所以请原谅我:)

在安装conda之后,我使用pip来安装各种软件包。昨天,我开始编写git教程中的一些代码,该教程建议创建一个可以使用的即席环境:

代码语言:javascript
复制
conda env create -f binder/environment.yml

在这个步骤中,我被建议更新conda,因为我使用的是旧版本。在我的终端中找不到特定的消息(也就是说,我找不到我以前使用的conda版本),但是下面是我检查conda版本时得到的信息:

代码语言:javascript
复制
(base) francesco ~$ conda list conda
# packages in environment at /Users/francesco/anaconda3:
#
# Name                    Version                   Build  Channel
_anaconda_depends         2019.03                  py36_0  
anaconda                  custom                   py36_1  
anaconda-client           1.7.2                    py36_0  
anaconda-navigator        1.8.7                    py36_0  
anaconda-project          0.8.4                      py_0  
conda                     4.8.3                    py36_0  
conda-build               3.10.5                   py36_0  
conda-env                 2.6.0                h36134e3_0  
conda-package-handling    1.6.0            py36h1de35cc_0  
conda-verify              3.4.2                      py_1  

更新后我注意到的一件事是,为了激活/禁用环境,我必须使用conda activate/deactivate <env>而不是source activate/deactivate <env>

之后,我在新环境中处理代码,没有任何问题。

今天,我试图激活我所使用的主要环境,但是我首先被要求“插入”我的shell:

代码语言:javascript
复制
conda init bash

在那之后,我激活了我的“平常”环境:

代码语言:javascript
复制
conda activate testenv

我试着启动木星实验室,但我发现了一个错误:

代码语言:javascript
复制
(testenv) francesco ~$ jupyter lab
Error executing Jupyter command 'lab': [Errno 2] No such file or directory

这是怎么回事?为什么木星实验室在我通常的环境下不再工作了?

我检查了testenv中的安装,情况看上去还不错:

代码语言:javascript
复制
(testenv) francesco ~$ conda list | grep jup
jupyter                   1.0.0                    py37_7  
jupyter_client            5.2.4                    py37_0  
jupyter_console           6.0.0                    py37_0  
jupyter_core              4.4.0                    py37_0  
(testenv) francesco ~$ pip list | grep jup
jupyter                  1.0.0   
jupyter-client           5.2.4   
jupyter-console          6.0.0   
jupyter-core             4.4.0   
(testenv) francesco ~$ 

有人知道这是怎么回事吗?这对我来说是个大问题,因为conda/jupyter实验室是我工作时使用的主要工具:\

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-22 20:12:02

通常的做法是只在一个Conda环境中安装木星(如果是Anaconda用户,通常是您的base env ),并且总是从那里启动。要在木星中使用其他Python,需要在这些env中安装ipykernel,例如,

代码语言:javascript
复制
conda install -n testenv ipykernel

此外,为了避免注册额外的env,建议在env中安装nb_conda_kernels,例如,

代码语言:javascript
复制
conda install -n base nb_conda_kernels

顺便提一句,用Pip安装东西会使环境不稳定。我强烈建议学习和坚持记录的最佳做法

票数 3
EN

Stack Overflow用户

发布于 2020-03-22 20:14:02

@FrancescoLS您似乎安装了一个旧版本的Conda (?)正如变化量g所指出的,在Conda v4.4.0中,source activate被反对为支持conda activate (Anaconda的"如何为conda 4.4的发布做准备“帖子中也提到了这一点)。

在任何可行的方式下,这确实不是一个“答案”,但似乎并不是只有您在Conda更新中破坏了人们的环境。

我认为可以安全地说,在升级期间保持虚拟环境的安全是很难做到的,而在跨虚拟环境维护人员(Conda)进行重大升级时,这就更加困难了。这也是我个人努力让我的所有项目虚拟环境都在原生Python3 venv虚拟环境中使用pip或者通过诗词来维护的原因之一(因为它们比使用Conda的较慢的解决程序要快得多(或者至少以前是这样),然后只在需要引入多个外部二进制应用程序时才使用Conda。

您是否能够为您的工作创建一个新的Conda环境,从而有效地恢复它(可能从您自己的environment.yml文件中恢复该环境)?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60797234

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档