这个问题在这里已经有了答案:如何更改默认 Python 版本? (19 个回答) 去年关闭。
我正在运行 Mountain Lion,基本的默认 Python 版本是 2.7。我下载了 Python 3.3 并想将其设置为默认值。
目前:
$ python
version 2.7.5
$ python3.3
version 3.3
如何设置它以便每次运行 $ python
时都会打开 3.3?
pyenv
管理 python 的版本。
在系统范围内更改默认 python 可执行文件的版本可能会破坏一些依赖于 python2 的应用程序。
但是,您可以在大多数 shell 中为命令设置别名,因为 macOS 中的默认 shell(10.14 及更低版本中的 bash;10.15 中的 zsh)共享类似的语法。您可以将 alias python='python3'
放入您的 ~/.profile
,然后将 ~/.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 可执行文件。
您可以通过符号链接解决它。
unlink /usr/local/bin/python
ln -s /usr/local/bin/python3.3 /usr/local/bin/python
unlink
而不是 rm
来删除符号链接(如果您不小心在 rm
上添加了尾部斜杠,您可能会得到一些不好的结果)。或者,您可以执行 ln -s -f ...
覆盖当前符号链接。
python
为 python2.7
的脚本有任何影响吗?
unlink: /usr/bin/python: Operation not permitted
ln -s...
with /local/
)。
打开 ~/.bash_profile 文件。
vi ~/.bash_profile
然后把别名如下:
alias python='python3'
现在保存文件,然后运行 ~/.bash_profile 文件。
source ~/.bash_profile
恭喜!!!现在,您可以通过键入 python 来使用 python3。
python --version
Python 3.7.3
source ~/.bash_profile
吗?一旦我关闭并再次打开终端,它就会恢复为 python2。
~/.bash_profile
,注释掉现有的并添加 export PATH="/Applications/anaconda3/envs/py3.10/bin:$PATH"
,它在 source
之后起作用。但是,一旦我关闭终端并重新打开,结果发现基础仍然是 py3.8。我需要再次source
。这是不合理的。因为我可以conda activate py3.10
。你有没有找到另一种方法来解决这个问题?
code ~/.bash_profile
而不是使用。 vi ~/.bash_profile
。
我也遇到了这个问题,所以我想我应该发布一个更新的答案。请注意,这仅适用于基于 Mac 的设置(我没有在 Windows 或任何版本的 Linux 上尝试过)。最简单的方法是通过 Brew 安装 Python。如果您没有安装 brew,则需要先安装。安装后,在终端执行以下操作:
brew 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
您必须重新加载当前的终端 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 工作。
转到终端类型:
alias python=python3.x
这会将默认 python 设置为 python3.x
这对我有用。我添加了别名并重新启动了我的终端:
alias python=/usr/local/bin/python3
以下对我有用
cd /usr/local/bin
mv python python.old
ln -s python3 python
转到“应用程序”,进入“Python”文件夹,应该有一个名为“更新 Shell Profile.command”或类似的 bash 脚本。运行该脚本,它应该这样做。
更新:看起来您不应该更新它:how to change default python version?
$ sudo ln -s -f $(which python3) $(which python)
完毕。
Mac 用户只需要在终端上运行以下代码
brew switch python 3.X.X
3.xx 应该是新的 python 版本。
这将更新所有系统链接。
更新
对于较新版本的 MAC 使用
brew link python 3.X.X
Error: Calling `brew switch` is disabled! Use `brew link` @-versioned formulae instead.
brew link python@3.9
。感谢提示!
将 python 别名为 python3 的建议将导致设置 python 版本的虚拟环境出现问题(例如:pyenv)。使用 pyenv,您可以像这样全局设置版本:
pyenv global 3.8.2
然后在任何特定项目中,您可以创建一个 .python-version 文件,其中包含 python 版本:
pyenv local 2.7.1
在我看来,这是在系统上管理多个 python 版本的最佳方式。
我认为当您安装 python 时,它会将导出路径语句放入您的 ~/.bash_profile 文件中。因此,如果您不打算再使用 Python 2,您可以从那里删除该语句。如上所述的别名也是一种很好的方法。
以下是如何从 ~/.bash_profile - vim ./.bash_profile - 删除引用(AKA 类似于:export PATH="/Users/bla/anaconda:$PATH") - 保存并退出 - source ./ .bash_profile 保存更改
在 MacOS 上
第 1 步:通过以下方式将 python 升级到最新版本:$ brew upgrade python
步骤 2:回家:$ cd
第三步:打开 .bash_profile
$ vi .bash_profile
为 Python 3.8 设置 PATH
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}" 导出路径
第四步:保存文件。并通过以下方式编译它:
$ . .bash_profile
Step-5:检查python版本:
$蟒蛇-V
第6步:就是这样。
我不确定这在 OS X 上是否可用,但在 linux 上我会使用 module
命令。 See here。
正确设置模块文件,然后将类似这样的内容添加到您的 rc 文件(例如 ~/.bashrc):
module load python3.3
这将使您在登录时根据需要切换路径,而不会影响任何系统默认值。
对我来说,解决方案是使用 PyCharm 并将默认 python 版本设置为我需要使用的版本。
安装 PyCharm 并转到新项目的文件 ==> 首选项,然后为项目选择所需的解释器,在本例中为 python 3.3
如果您使用 macports,则不需要使用别名或环境变量,只需使用 macports 已经提供的方法,此问答对此进行了解释:
How to: Macports select python
TL;博士:
sudo port select --set python python27
这是我的 exp 中最简单的方法。 (如果您的 Mac 上安装了 brew)。
从你的终端试试这个:
brew install python3
然后在您的终端上运行以下命令:
ls -l /usr/local/bin/python*
小费:
**(记下终端上显示的 python 版本 3.8 或 3.9。这将在下一步中需要)。例如,在我的情况下是:
lrwxr-xr-x 1 用户管理员 5 月 7 日 24 日 14:33 /usr/local/bin/python -> /usr/local/bin/python3.9
现在在您的终端上运行以下命令:
ln -s -f /usr/local/bin/python3.9 /usr/local/bin/python
(其中 3.9 是使用上一个命令在终端上显示的版本)
完成 !
要测试您的默认 python 版本:
关闭当前终端或启动一个新终端并运行以下命令:
python --version
快乐编码!
如果您使用的是 virtualenvwrapper
,您可以使用 which virtualenvwrapper.sh
找到它,然后使用 vim
或任何其他编辑器打开它,然后更改以下内容
# Locate the global Python where virtualenvwrapper is installed.
if [ "${VIRTUALENVWRAPPER_PYTHON:-}" = "" ]
then
VIRTUALENVWRAPPER_PYTHON="$(command \which python)"
fi
将行 VIRTUALENVWRAPPER_PYTHON="$(command \which python)"
更改为 VIRTUALENVWRAPPER_PYTHON="$(command \which python3)"
。
如果您使用的是 macports,则有一种更简单的方法:
跑:
port install python37
安装后,设置默认值:
sudo port select --set python python37
sudo port select --set python3 python37
重启你的cmd窗口,完成。
嗯……有点老了。但仍然值得一个好的答案。
好的是你不想在 Mac 上触摸默认的 Python。
通过 Homebrew 或其他任何方式安装您需要的任何 Python 版本并在 virtualenv 中使用它。 Virtualenv 通常被认为是类似垃圾的东西,但它仍然比在系统范围内更改 python 版本(macOS 可能会保护自己免受此类操作)或用户范围内、bash 范围内......任何方式更好。忘记默认的 Python。使用像 venv 这样的 Playground 是你的操作系统最值得感谢的地方。
例如,许多现代 Linux 发行版摆脱了开箱即用的 Python2,只在系统中留下 Python3。但是每次您尝试使用 python2 作为依赖项安装旧的东西时...希望您理解我的意思。一个好的开发人员不在乎。优秀的开发人员使用他们想要的 python 版本创建干净的 Playground。
alias python=python3
然后在我的终端上运行python
对我来说不起作用。尝试同时保存 ~/.bash_aliases 和 ~/.bash_profile。~/.bash_profile
文件后运行source ~/.bash_profile
。alias pip='pip3.6'