在广泛使用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 <env>而不是source activate/deactivate <env>。
之后,我在新环境中处理代码,没有任何问题。
今天,我试图激活我所使用的主要环境,但是我首先被要求“插入”我的shell:
conda init bash在那之后,我激活了我的“平常”环境:
conda activate testenv我试着启动木星实验室,但我发现了一个错误:
(testenv) francesco ~$ jupyter lab
Error executing Jupyter command 'lab': [Errno 2] No such file or directory这是怎么回事?为什么木星实验室在我通常的环境下不再工作了?
我检查了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实验室是我工作时使用的主要工具:\
发布于 2020-03-22 20:12:02
通常的做法是只在一个Conda环境中安装木星(如果是Anaconda用户,通常是您的base env ),并且总是从那里启动。要在木星中使用其他Python,需要在这些env中安装ipykernel,例如,
conda install -n testenv ipykernel此外,为了避免注册额外的env,建议在env中安装nb_conda_kernels,例如,
conda install -n base nb_conda_kernels顺便提一句,用Pip安装东西会使环境不稳定。我强烈建议学习和坚持记录的最佳做法。
发布于 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文件中恢复该环境)?
https://stackoverflow.com/questions/60797234
复制相似问题