我正在尝试更新我的 venv。 这就是我看到的
(base_test) > conda update python
Collecting package metadata (current_repodata.json): done
Solving environment: done
==> WARNING: A newer version of conda exists. <==
current version: 4.10.3
latest version: 24.7.1
Please update conda by running
$ conda update -n base -c defaults conda
# All requested packages already installed.
(base_test) > python
Python 3.7.5 (default, Oct 31 2019, 15:18:51) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
(base_test) > python -V
Python 3.7.5
(base_test) > conda update --all
Collecting package metadata (current_repodata.json): done
Solving environment: done
==> WARNING: A newer version of conda exists. <==
current version: 4.10.3
latest version: 24.7.1
Please update conda by running
$ conda update -n base -c defaults conda
...
The following packages will be UPDATED:
...
python 3.7.5-h8c8aaf0_0 --> 3.7.16-h6244533_0
...
为什么只更新
python
不更新到3.7.16,而更新
--all
会?
PS:我目前无法更新
conda
由于
这个
。
遇到的问题在于
conda update python
只会尝试更新
python
包到最新版本,但前提是在满足当前环境中所有其他包的依赖关系的情况下。换句话说,如果其他包依赖于 Python 3.7.5 或更早版本,那么即使有更新的 Python 版本可用,
conda
也不会更新
python
。
另一方面,
conda update --all
会尝试更新环境中的
所有
包到最新版本,包括它们的依赖项。 因此,当运行
conda update --all
时,
conda
会找到一个新的解决方案,其中包括 Python 3.7.16 以及与之兼容的其他包版本。
总结:
-
conda update python
只更新python
包,并受限于环境中其他包的依赖关系。 -
conda update --all
更新所有包,并会尝试找到一个新的解决方案,其中所有包及其依赖项都更新到最新版本。
关于更新 Conda:
虽然暂时无法更新
conda
,但我建议找到解决方法,因为使用旧版本的
conda
可能会导致其他问题。可以尝试以下方法:
-
创建一个新的虚拟环境并安装最新版本的
conda
。 -
尝试按照 Stack Overflow 上的建议解决
conda
更新问题。 -
考虑使用其他环境管理工具,例如
venv
或pipenv
。
希望以上解释能够帮助理解为什么
conda update python
无法更新 Python 版本,而
conda update --all
可以。