我刚刚安装了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
复制相似问题