在Anaconda中,使用命令行升级Python版本遇到的若干问题
1、升级前的版本信息
1)打开Anaconda Powershell Prompt终端
2)在终端输入conda info查看版本信息,输入 python --verrsion查看python版本信息(本机开始只有一个base环境,channels是默认的。显示的虚拟环境是后来新建的。设置channels,依次设置了默认的清华源channels)
(base) PS C:\Users\Sun> conda info
active environment : base
active env location : D:\installed\Anaconda3
shell level : 3
user config file : C:\Users\Sun\.condarc
populated config files : C:\Users\Sun\.condarc
conda version : 22.9.0
conda-build version : 3.22.0
python version : 3.9.13.final.0
virtual packages : __win=0=0
__archspec=1=x86_64
base environment : D:\installed\Anaconda3 (writable)
conda av data dir : D:\installed\Anaconda3\etc\conda
conda av metadata url : None
channel URLs : https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/noarch
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/win-64
https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/noarch
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64
https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/noarch
https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
package cache : D:\installed\Anaconda3\pkgs
C:\Users\Sun\.conda\pkgs
C:\Users\Sun\AppData\Local\conda\conda\pkgs
envs directories : D:\installed\Anaconda3\envs
C:\Users\Sun\.conda\envs
C:\Users\Sun\AppData\Local\conda\conda\envs
platform : win-64
user-agent : conda/22.9.0 requests/2.28.1 CPython/3.9.13 Windows/10 Windows/10.0.22621
administrator : False
netrc file : None
offline mode : False
(base) PS C:\Users\Sun> python --version
Python 3.9.13
2、此环境Python版本升级遇到的问题
在base环境下,channel默认。输入conda install python=3.12.0,出现如下问题。命令会一直运行,可以使用Ctrl+C强制停止。
(base) PS C:\Users\Sun> conda install python=3.12.0
Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Collecting package metadata (repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
CondaError: KeyboardInterrupt
3、尝试解决
1)包组更新
Windows 用户,右键点击 Anaconda Prompt 然后选择“以管理员身份运行”,可以解决一些安装权限问题。一般先更新好conda,再更新anaconda。
更新conda
(base) PS C:\Users\Sun> conda update conda
Collecting package metadata (current_repodata.json): done
Solving environment: done
==> WARNING: A newer version of conda exists. <==
current version: 22.9.0
latest version: 24.9.2
Please update conda by running
$ conda update -n base -c defaults conda
# All requested packages already installed.
Retrieving notices: ...working... done
出现上述版本的报错,使用系统的建议命令:conda update -n base -c defaults conda
上述命令无法正确更新conda 版本,请使用如下命令耐心等待更新:
conda install conda=24.9.2
更新Anaconda
conda update anaconda
conda update --all
2)更换镜像源
查看现有镜像源
conda config --show channels
添加清华镜像源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
删除添加源,恢复默认源
conda config --remove-key channels
上述方法均没有解决Python版本更新的问题
4、通过新建虚拟环境,安转其他版本Python
{总结:想要改变某个虚拟环境的python版本,只能新建一个虚拟环境重新装过,不能直接在原有的虚拟环境里改python版本(除非把其它包也按新python的版本全都改掉,只改python是不行的)!
如果已经执行了conda install python=3.5,可以通过conda install python=3.9装回原来的python,或者用回滚的方式恢复虚拟环境。
【注意】新建虚拟环境一定要指定python版本
anaconda里新建虚拟环境的时候,如果只是conda create -n MyNew(没指定python版本)的话,是会建立失败的,会发现新环境MyNew里什么包都没有,包都下到base里了,因为不指定python的话,pip会指向base环境中的pip!!}
————————————————
参考原文链接:anaconda虚拟环境改变python版本
新建虚拟环境,并指点Python版本
conda create -n advanced_ver_env python=3.12.0
进入刚才新建的虚拟环境
conda activate advanced_ver_env
查看新环境下Python的版本
(advanced_ver_env) PS C:\WINDOWS\system32> python --version
Python 3.12.0
总结:目前只能通过新建虚拟环境提升Python的版本。升级conda,更换镜像源无法解决在base环境下Python版本的升级。待后续研究…