Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pip 更新conda后conda环境已损坏_Pip_Anaconda_Jupyter_Conda_Jupyter Lab - Fatal编程技术网

Pip 更新conda后conda环境已损坏

Pip 更新conda后conda环境已损坏,pip,anaconda,jupyter,conda,jupyter-lab,Pip,Anaconda,Jupyter,Conda,Jupyter Lab,在广泛使用conda一段时间后,昨天有人要求我更新它,现在一切看起来都坏了。我必须承认,我不是幕后活动的专家,所以请容忍我:) 安装conda后,我使用pip安装了各种软件包。 昨天,我开始编写git教程中的一些代码,该教程建议创建一个临时环境来使用: conda env create -f binder/environment.yml 在这一步,有人建议我更新conda,因为我使用的是旧版本。我在终端中找不到该特定消息(即,我找不到我以前使用的conda版本),但我现在检查conda版本时得

在广泛使用conda一段时间后,昨天有人要求我更新它,现在一切看起来都坏了。我必须承认,我不是幕后活动的专家,所以请容忍我:)

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

conda env create -f binder/environment.yml
在这一步,有人建议我更新conda,因为我使用的是旧版本。我在终端中找不到该特定消息(即,我找不到我以前使用的conda版本),但我现在检查conda版本时得到的信息如下:

(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
,而不是
source activate/deactivate

在那之后,我在新环境中使用代码,没有任何问题

今天,我尝试激活我使用的主环境,但我被要求首先使用以下工具“初始化”我的shell:

conda init bash
之后,我激活了我的“常规”环境:

conda activate testenv
我试着启动Jupyter实验室,但出现了以下错误:

(testenv) francesco ~$ jupyter lab
Error executing Jupyter command 'lab': [Errno 2] No such file or directory
发生了什么事?为什么Jupyter实验室不再在我通常的环境中工作

我在
testenv
中检查了安装,一切正常:

(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实验室是我工作时使用的主要工具:\

通常的做法是只在一个conda环境中安装jupyter(如果是Anaconda用户,通常是您的基础环境),并始终从那里启动jupyter。要在Jupyter中使用其他Python环境,您需要在这些环境中安装
ipykernel
,例如

conda install -n testenv ipykernel
而且,为了避免注册额外的环境,建议使用Jupyter在环境中安装
nb_conda_内核
,例如

conda install -n base nb_conda_kernels

顺便说一句,使用Pip安装东西会使环境不稳定。我强烈建议您学习并遵守。

通常的做法是只在单个Conda环境中安装Jupyter(如果是Anaconda用户,通常是您的基础环境),并始终从那里启动Jupyter。要在Jupyter中使用其他Python环境,您需要在这些环境中安装
ipykernel
,例如

conda install -n testenv ipykernel
而且,为了避免注册额外的环境,建议使用Jupyter在环境中安装
nb_conda_内核
,例如

conda install -n base nb_conda_kernels

顺便说一句,使用Pip安装东西会使环境不稳定。我强烈建议您学习并坚持。

@FrancescoLS您似乎安装了一个较旧版本的Conda(?),因为这表明
源代码激活
被弃用,取而代之的是Conda
v4.4.0
中的
Conda激活
(这篇来自Anaconda的“帖子”中也提到了这一点)

这真的不是一个“答案”,在任何可行的方式,但似乎你不是唯一在康达更新打破人们的环境

  • 还有很多/
我认为可以肯定地说,在升级过程中保持虚拟环境的安全完整是很难做到的,而在跨虚拟环境维护者(Conda)进行重大升级时,则更难做到。这就是我个人尝试让我的所有项目虚拟环境在本地Python 3
venv
虚拟环境中使用
pip
或通过(它们现在(或至少过去)比通过康达较慢的解算器更快地恢复)来维护的原因之一然后,只有在需要引入多个外部二进制应用程序时才使用Conda


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

@FrancescoLS您似乎安装了一个旧版本的Conda(?)正如所示,
source activate
被弃用,取而代之的是conda
v4.4.0
中的
conda activate
(正如Anaconda的这篇“博文”中所述)

这真的不是一个“答案”,在任何可行的方式,但似乎你不是唯一在康达更新打破人们的环境

  • 还有很多/
我认为可以肯定地说,在升级过程中保持虚拟环境的安全完整是很难做到的,而在跨虚拟环境维护者(Conda)进行重大升级时,则更难做到。这就是我个人尝试让我的所有项目虚拟环境在本地Python 3
venv
虚拟环境中使用
pip
或通过(它们现在(或至少过去)比通过康达较慢的解算器更快地恢复)来维护的原因之一然后,只有在需要引入多个外部二进制应用程序时才使用Conda


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

您的
Conda列表
输出没有显示jupyer lab。可能是更新意外删除了它。尝试通过
conda install jupyterlab
重新安装它。你说得对,我重新安装了它,它成功了。这不是很奇怪吗?原则上,我在任何环境中安装的所有软件包都可能是这种情况,对吗?在安装conda之后,我使用[pip]来安装各种软件包。做这件事时要小心,看。@cel“不小心把它拿走了”有点怀疑它。在我看来,这更像是他们第一次将Conda升级到v4.4以上,当其他环境被激活时,这将使基本环境脱离路径。因为新环境没有安装Jupyter实验室,所以它不可用;B