Julia使用Conda.jl时出现Not a Conda environment错误如何解决
问题原因
Conda.list()、Conda.add()这类Conda.jl的包管理接口,要求传入的环境路径参数是Conda环境的根目录,而你传入的Conda.PYTHONDIR返回的是当前关联Conda环境下Python可执行文件所在的bin子目录,不是合法的环境根目录,因此抛出路径不合法的错误。- 从你提供的
conda info --envs输出可以确认:Julia自动创建的Conda环境根目录是/Users/imantha/.julia/conda/3,Conda.PYTHONDIR返回的是它的下级/bin目录,二者层级不同。
解决方法
- 如果你要操作Julia默认管理的这个Conda环境,不需要手动传入路径参数,直接调用无参接口即可:
查看已安装包:Conda.list()
安装新包(以numpy为例):Conda.add("numpy")
卸载包(以numpy为例):Conda.remove("numpy") - 如果你需要手动指定环境操作,传入正确的环境根目录即可,当前场景下执行
Conda.list("/Users/imantha/.julia/conda/3")即可正常返回结果。 - 如果你后续需要将PyCall绑定到你自己创建的其他Conda环境(如pyEnv、mlEnv等),可以通过以下操作实现:
# 替换为你目标Conda环境的Python可执行文件路径 ENV["PYTHON"] = "/Users/imantha/Software/miniforge3/envs/pyEnv/bin/python" using Pkg Pkg.build("PyCall") # 执行完成后重启Julia即可生效
内容的提问来源于stack exchange,提问作者imantha
相关产品推荐
相关产品推荐

