如何使用bash脚本在conda env中运行原子和氢?

时间:2019-07-05 16:55:18

标签: python ipython atom-editor conda hydrogen

我曾经有一个简单的bash脚本,用于激活conda env然后运行atom。然后,我可以使用氢气运行python代码,该代码可以自动查看myenv中的软件包。

以前的bash脚本是这样的:

#!/bin/bash

source activate myenv && 
atom

由于conda> 4.4不再存在“源激活”功能,因此我不得不将脚本修改为:

#!/bin/bash

source /home/ubuntu/miniconda3/etc/profile.d/conda.sh &&
conda activate myenv &&
atom

但是,氢气不再能够检测到myenv并从基本环境中运行代码,由于基本环境中缺少软件包,因此导致错误。

当我用spyder替换atom时,以上脚本可以正常工作,并且spyder内核确实可以看到myenv。

有什么办法解决这个问题吗?

更新1:

我做了一些调试。看来我的ipykernel没有分配给已激活环境中安装的内核,而是分配给了默认的ipykernel。

当我在激活环境中尝试jupyter kernelspec list时,我得到:

python3    /home/ubuntu/.local/share/jupyter/kernels/python3

但是在另一个系统上,我得到

/home/ubuntu/miniconda3/envs/myenv/share/jupyter/kernels/python3

这似乎是正确的内核。

关于如何解决此问题的任何想法?

更新2:

似乎this解决了更新1中的问题。然后,我能够使用接受的答案将原子装载到所需的env中,并使氢从该env中的ipykernel流出。

1 个答案:

答案 0 :(得分:1)

source activate仍然像以前一样工作,尽管它不再是激活环境的首选方式。

如果仅运行单个命令,请尝试

conda run -n <envname> <command>

可能首先要采购个人资料。

我还没有尝试过,但是潜在的问题是您在获取个人资料后正在使用&&。我假设在您编写问题时,行继续符(\)在那里丢失了。只需将命令写到单独的行中,以便在 bash处理下一条命令之前加载配置文件。