我正在运行 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, 然后~/.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
打开~/.bash_profile文件。
vi ~/.bash_profile
然后把别名如下:
alias python='python3'
现在保存文件,然后运行~/.bash_profile文件。
source ~/.bash_profile
恭喜!!!现在,您可以通过键入python来使用 python3 。
python --version
蟒蛇 3.7.3
我也遇到了这个问题,所以我想我应该发布一个更新的答案。请注意,这仅适用于基于 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
转到终端类型:
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 脚本。运行该脚本,它应该这样做。
更新:看起来你不应该更新它:如何更改默认 python 版本?
我相信大多数登陆这里的人都通过 iterm 或其他方式使用 ZSH,这让你得到了这个答案。
您必须添加/修改您的命令~/.zshrc。
$ sudo ln -s -f $(which python3) $(which python)
完毕。
将 python 别名为 python3 的建议将导致设置 python 版本的虚拟环境出现问题(例如:pyenv)。使用 pyenv,您可以像这样全局设置版本:
pyenv global 3.8.2
然后在任何特定项目中,您可以创建一个 .python-version 文件,其中包含 python 版本:
pyenv local 2.7.1
在我看来,这是在系统上管理多个 python 版本的最佳方式。
Mac 用户只需要在终端上运行以下代码
brew switch python 3.X.X
3.xx应该是新的 python 版本。
这将更新所有系统链接。
更新
对于较新版本的 MAC 使用
brew link python 3.X.X
在 Mac 上将 Python 3 设置为默认值的正确和错误方法
在本文中,作者讨论了三种设置默认 python 的方法:
所有这些方法都有效。你决定哪个更好。
我认为当您安装 python 时,它会将导出路径语句放入您的 ~/.bash_profile 文件中。因此,如果您不打算再使用 Python 2,您可以从那里删除该语句。如上所述的别名也是一种很好的方法。
以下是如何从 ~/.bash_profile - vim ./.bash_profile - 删除引用(AKA 类似于:export PATH="/Users/bla/anaconda:$PATH") - 保存并退出 - source ./ .bash_profile 保存更改
第 1 步:通过以下方式将 python 升级到最新版本:$ brew upgrade python
步骤 2:回家:$ cd
第三步:打开 .bash_profile
$ vi .bash_profile
PATH="/Library/Frameworks/Python.framework/Versions/3.8/bin:${PATH}" 导出路径
第四步:保存文件。并通过以下方式编译它:
$ . .bash_profile
Step-5:检查python版本:
$蟒蛇-V
第6步:就是这样。
我不确定这在 OS X 上是否可用,但在 linux 上我会使用该module命令。 见这里。
正确设置模块文件,然后将类似这样的内容添加到您的 rc 文件(例如 ~/.bashrc):
module load python3.3
这将使您在登录时根据需要切换路径,而不会影响任何系统默认值。
如果您使用 macports,则不需要使用别名或环境变量,只需使用 macports 已经提供的方法,此问答对此进行了解释:
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
快乐编码!
对我来说,解决方案是使用 PyCharm 并将默认 python 版本设置为我需要使用的版本。
安装 PyCharm 并转到新项目的文件 ==> 首选项,然后为项目选择所需的解释器,在本例中为 python 3.3
如果您使用的是 macports,则有一种更简单的方法:
跑:
port install python37
安装后,设置默认值:
sudo port select --set python python37
sudo port select --set python3 python37
重启你的cmd窗口,完成。
如果您使用的是 a 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)"。
嗯……有点老了。但仍然值得一个好的答案。
好的是你不想在 Mac 上触摸默认的 Python。
通过 Homebrew 或其他任何方式安装您需要的任何 Python 版本并在 virtualenv 中使用它。Virtualenv 通常被认为是类似垃圾的东西,但它仍然比在系统范围内更改 python 版本(macOS 可能会保护自己免受此类操作)或用户范围内、bash 范围内......任何方式更好。忘记默认的 Python。使用像 venv 这样的 Playground 是你的操作系统最值得感谢的地方。
例如,许多现代 Linux 发行版摆脱了开箱即用的 Python2,只在系统中留下 Python3。但是每次您尝试使用 python2 作为依赖项安装旧的东西时...希望您理解我的意思。一个好的开发人员不在乎。优秀的开发人员使用他们想要的 Python 版本创建干净的 Playground。