我正在使用Mountain Lion操作系统,基本默认的Python版本是2.7。我下载了Python 3.3并希望将其设置为默认版本。
当前:
$ python
version 2.7.5
$ python3.3
version 3.3
我该如何设置,才能使每次运行$ python
都打开3.3版本?
我正在使用Mountain Lion操作系统,基本默认的Python版本是2.7。我下载了Python 3.3并希望将其设置为默认版本。
当前:
$ python
version 2.7.5
$ python3.3
version 3.3
我该如何设置,才能使每次运行$ python
都打开3.3版本?
更改全局默认的Python解释器版本可能会破坏某些依赖于Python2的应用程序。
但是,您可以在大多数shell中使用别名命令。由于macOS中默认的shell(10.14及以下版本使用bash; 10.15版本使用zsh)共享类似的语法。您可以将
alias python='python3'
放入您的~/.profile
文件中,然后在您的~/.bash_profile
和/或~/.zsh_profile
文件中加入如下一行代码:
[ -e ~/.profile ] && . ~/.profile
这样,您的别名将在不同的shell中起作用。
有了这个设置,python
命令现在调用的是python3
。如果您想偶尔调用“原始”的Python(指python2),您可以使用command python
,它将保留别名并在所有shell中使用。
如果您更频繁地启动解释器(我会这样做),您也可以创建更多别名来添加,例如:
alias 2='python2'
alias 3='python3'
提示:对于脚本,可以使用以下方法代替shebang:
#!/usr/bin/env python
使用:
#!/usr/bin/env python3
这样,系统将使用python3来运行python 可执行文件。
alias python=python3
,然后运行python
并没有起作用。我尝试将它保存在~/.bash_profile
文件后,请运行 source ~/.bash_profile
。 - Wei Lualias pip='pip3.6'
。 - tread#!/usr/bin/env python3
或任何其他shebang +路径? @SantoshKumar - Edisonunlink /usr/local/bin/python
ln -s /usr/local/bin/python3.3 /usr/local/bin/python
unlink
而不是rm
来删除符号链接(如果您在rm
上意外添加尾随斜杠,则可能会产生一些不良结果)。或者,您可以使用 ln -s -f ...
,它应该会覆盖当前的符号链接。 - Chad Befuspython
是 python2.7
的脚本,这会有什么后果吗? - Anton Tarasenkounlink: /usr/bin/python: 操作不允许
- MarksCodeln -s...
带 /local/
)。 - EliadLvi ~/.bash_profile
然后将别名设置如下:
alias python='python3'
现在保存文件,然后运行~/.bash_profile文件。
source ~/.bash_profile
恭喜您!现在,您可以通过键入python来使用Python3。
python --version
Python 3.7.3
->Python 3.7.3
(无需翻译)export PATH="/Applications/anaconda3/envs/py3.10/bin:$PATH"
来更改~/.bash_profile
。在执行source
之后它可以工作。但是,一旦我退出终端并重新打开,它仍然是py3.8。我需要再次执行source
,这是不合理的。因为我可以使用conda activate py3.10
。你有没有找到另一种解决方法? - CN_Cabbagecode ~/.bash_profile
代替使用vi ~/.bash_profile
。 - zpvkbrew install python
这将安装Python 3。安装完成后,运行以下命令:
ls -l /usr/local/bin/python*
您将看到由brew创建的与其Python安装相关的所有链接。它看起来会像这样:
lrwxr-xr-x 1 username admin 36 Oct 1 13:35 /usr/local/bin/python3@ -> ../Cellar/python/3.7.4_1/bin/python3
lrwxr-xr-x 1 username admin 43 Oct 1 13:35 /usr/local/bin/python3-config@ -> ../Cellar/python/3.7.4_1/bin/python3-config
lrwxr-xr-x 1 username admin 38 Oct 1 13:35 /usr/local/bin/python3.7@ -> ../Cellar/python/3.7.4_1/bin/python3.7
lrwxr-xr-x 1 username admin 45 Oct 1 13:35 /usr/local/bin/python3.7-config@ -> ../Cellar/python/3.7.4_1/bin/python3.7-config
lrwxr-xr-x 1 username admin 39 Oct 1 13:35 /usr/local/bin/python3.7m@ -> ../Cellar/python/3.7.4_1/bin/python3.7m
lrwxr-xr-x 1 username admin 46 Oct 1 13:35 /usr/local/bin/python3.7m-config@ -> ../Cellar/python/3.7.4_1/bin/python3.7m-config
在这个例子中,第一行显示了 python3
的符号链接。要将其设置为默认的 python
符号链接,请运行以下命令:
ln -s -f /usr/local/bin/python3 /usr/local/bin/python
同样地,您也可以设置 pip 符号链接
ln -s -f /usr/local/bin/pip3 /usr/local/bin/pip
您需要重新加载当前的终端 shell 才能在该 shell 中使用新的符号链接。运行以下命令以重新加载您的 shell:
exec $SHELL -l
现在你已经准备好了。现在,你可以做:
which python
它应该显示:
/usr/local/bin/python
所有新开启的 shell 会(应该)自动使用新的符号链接。为了测试这个功能,打开一个新的终端 shell 并运行以下命令:
python --version
arch -arm64 brew install python
& 2. pip 对我不起作用,所以我必须运行 sudo ln -s -f /usr/local/bin/pip3 /usr/local/bin/pip
然后 pip 就可以工作了。 - sohammondal打开终端并输入:
alias python=python3.x
这将设置默认的Python版本为Python3.x。
这对我很有效。我添加了别名(alias)并重启了我的终端(terminal):
alias python=/usr/local/bin/python3
以下方法对我有用
cd /usr/local/bin
mv python python.old
ln -s python3 python
前往“应用程序”,进入“Python”文件夹,那里应该有一个名为“Update Shell Profile.command”或类似的bash脚本。运行该脚本即可完成操作。
更新:看起来您不应该进行更新:如何更改默认的Python版本?
$ sudo ln -s -f $(which python3) $(which python)
完成。
sudo ln -s -f $(which python3) /usr/local/bin/python
- oori
pyenv
来管理 Python 的版本。 - Shin Kim