我刚刚安装了PythonVersion3.11(我还将3.8和3.9版本从我的应用程序文件夹中移到垃圾桶中)。
我可以从以下几个方面看出这一点:
$ myname@name-MBP miniconda3 % ls /usr/local/bin/py*
/usr/local/bin/pydoc3 /usr/local/bin/python3-intel64
/usr/local/bin/pydoc3.11 /usr/local/bin/python3.11
/usr/local/bin/python3 /usr/local/bin/python3.11-config
/usr/local/bin/python3-config /usr/local/bin/python3.11-intel64(如果有任何关于我是否需要清理东西的额外建议,我将不胜感激。)
检查python3 --version仍然显示Python 3.8.13。
首次尝试解决问题
最初,我尝试使用homebrew并指定版本从命令行安装它:
brew install python@3.11
我也尝试过使用conda,但这两种方法都不起作用。
第二次尝试解决
我最初的想法是检查我的路径(我认为Python就是这样决定使用哪个版本的,但是如果我错了,请纠正我)。
这仍然只包含版本8路径:
/Users/myname/miniconda3/lib/python38.zip
/Users/myname/miniconda3/lib/python3.8
/Users/myname/miniconda3/lib/python3.8/lib-dynload
/Users/myname/.local/lib/python3.8/site-packages
/Users/myname/miniconda3/lib/python3.8/site-packages因此,我使用以下方法向其添加Python3.11路径
PYTHONPATH="/usr/local/bin/pydoc3.11/:$PYTHONPATH"
export PYTHONPATH现在它包括了打印sys.path时的v3.11路径
/usr/local/bin/python3.11
/usr/local/bin/pydoc3.11
/Users/myname/miniconda3
/Users/myname/miniconda3/lib/python38.zip
/Users/myname/miniconda3/lib/python3.8
/Users/myname/miniconda3/lib/python3.8/lib-dynload
/Users/myname/.local/lib/python3.8/site-packages
/Users/myname/miniconda3/lib/python3.8/site-packages但是python3 --version输出仍然保持不变。
问题
我很紧张,因为我真的不知道我在做什么,所以我一直在玩我的路径的内容,并输入随机命令行执行来试图解决这个问题。
这里发生了什么事?
如何使python3 --version的输出为3.11?
发布于 2022-10-29 22:31:38
因此,首先要理解的是设置变量PYTHONPATH不会影响由shell执行哪个版本的python。shell (bash/zsh)只知道扫描PATH env中的路径以确定所有可执行文件。
现在有两种方法来解决这个问题。
1.利用自制的python@3.11。
使用这种方法有几个缺点。目前,brew默认的python3是3.10.x。每当您安装依赖于python@3的木桶或公式时,它总是会安装python@3公式,也就是3.10.x。安装python3将使brew符号链接3.10.x进入/opt/homebrew/bin。

Python3.11.x可以通过安装python@3.11和调用python3.11来使用。这应该会让您进入Python3.11解释器。将所有python可执行名称附加到类似于pip的版本后,将是pip3.11。

试图迫使3.11以上的3.10链接将是复杂的,并造成不稳定。它只会在开发过程中造成挫折。。
2.使用VirtualEnvs
使用venv或pyenv创建虚拟env是您对python最稳定、最不头痛的最佳选择。最大程度地方便地使用pyenv-virtualenv。
venv的一个限制是它将创建一个与调用它的版本相同的虚拟主机。也就是说,如果您执行brew install python@3 && python3 -m venv <folder>,它将创建python3的虚拟版本。对于3.11,您必须使用brew install python@3.11 && python3.11 -m venv <folder>。另一方面,Pyenv可以安装任何版本的python。
通过https://www.dataquest.io/blog/a-complete-guide-to-python-virtual-environments/和https://github.com/pyenv/pyenv-virtualenv了解和了解更多信息。
https://stackoverflow.com/questions/74244945
复制相似问题