我曾经有一个简单的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流出。
答案 0 :(得分:1)
source activate
仍然像以前一样工作,尽管它不再是激活环境的首选方式。
如果仅运行单个命令,请尝试
conda run -n <envname> <command>
可能首先要采购个人资料。
我还没有尝试过,但是潜在的问题是您在获取个人资料后正在使用&&
。我假设在您编写问题时,行继续符(\
)在那里丢失了。只需将命令写到单独的行中,以便在 bash处理下一条命令之前加载配置文件。