软链接指向python3.12的python3为何显示不同版本号?
软链接指向python3.12的python3为何显示不同版本号?
这情况确实挺让人摸不着头脑的,我来给你捋捋最可能的原因:
首先先还原下你遇到的场景:
你在
/bin目录下执行了这些命令:$ ls -l python3 lrwxrwxrwx 1 root root 10 Aug 8 01:44 python3 -> python3.12 $ python3 --version Python 3.12.3 $ python3.12 --version Python 3.12.5
最常见的元凶其实是系统的PATH环境变量优先级:你以为自己调用的python3是/bin目录下那个指向python3.12的软链接,但实际上你的PATH里有个优先级更高的目录(比如/usr/local/bin),里面也有个python3可执行文件,版本正好是3.12.3。而当你直接输入python3.12时,系统找到的是/bin目录下的那个3.12.5的版本。
你可以验证一下:执行which python3,看看输出的路径是不是/bin/python3。如果不是,那就是我说的这种情况——系统优先调用了其他目录下的python3。
另外还有一种极小概率的情况:/bin/python3.12这个文件后来被替换过(比如通过包管理更新了),但python3的软链接本身没问题,但你调用python3时因为某种缓存或者特殊环境变量(比如PYTHONHOME)影响,加载了旧的版本信息?不过这种情况非常少见,优先排查PATH的问题准没错。
备注:内容来源于stack exchange,提问作者Chenghao Wang
相关产品推荐
相关产品推荐

