python - 默认情况下,conda 命令在 conda 环境中不可用
问题描述
为什么我不能从 conda 环境更新 conda,但我可以使用它?
一个例子
我可以conda
从更新root
[ravas@localhost ~]$ source activate
(base) [ravas@localhost ~]$ conda update conda
Solving environment: done
# All requested packages already installed.
我无法从以下位置更新它p36
:
(base) [ravas@localhost ~]$ source activate p36
(p36) [ravas@localhost ~]$ conda update conda
PackageNotInstalledError: Package is not installed in prefix.
prefix: /home/ravas/miniconda3/envs/p36
package name: conda
这似乎是因为 conda 没有安装在p36
(base) [ravas@localhost ~]$ conda list | grep conda
# packages in environment at /home/ravas/miniconda3:
anaconda-client 1.7.1 py37_0
anaconda-navigator 1.9.2 py37_0
conda 4.5.11 py37_0
conda-env 2.6.0 1
(p36) [ravas@localhost ~]$ conda list | grep conda
# packages in environment at /home/ravas/miniconda3/envs/p36:
anaconda 5.3.0 py36_0
anaconda-client 1.7.2 py36_0
anaconda-project 0.8.2 py36_0
pdfminer.six 20170720 py36_0 conda-forg
但是,从p36
我可以使用 conda
(p36) [ravas@localhost ~]$ conda update anaconda
Solving environment: done
# All requested packages already installed.
这是为什么?
解决方案
这是 shell(Bash、zsh、csh、fish 等)如何找到要执行的程序的结果。(shell 是正在运行以处理您在终端中键入的命令的程序)。PATH
shell 在环境变量中指定的文件夹中查找可执行文件。它按照在该变量中指定的顺序搜索这些文件夹。如果您在PATH
激活环境的情况下查看 的内容,它应该类似于
$ echo $PATH
/home/ravas/miniconda3/envs/p36/bin:/home/ravas/miniconda3/bin:...
当 shell 尝试查找conda
可执行文件时,它首先在环境目录中查找;当它在那里找不到它时,它会在base
目录中查找它确实找到它!
推荐阅读
- django - Django:如何自动设置正确的媒体文件夹权限?
- install4j - 如何诊断 Windows 上 install4j 生成的安装程序失败?
- go - 如何从反射切片中获取原始类型
- android - Android Here 高级 sdk - 更改离线地图的目录
- logging - 从 datapower 向 splunk 发送日志
- leaflet - Leaflet + Opendata + WGS 84 = 地理转型?
- python - 旋转或变换 2 功能
- javascript - 如何基于相等的属性值合并对象数组?
- python - 如何在 app.run() 之后销毁 pygubu 窗口?
- javascript - 模拟文件中的间谍功能