Open nicejade opened 4 years ago
在系统范围内更改默认的 python 版本会破坏某些依赖 python2 的应用程序。您可以在大多数 shell 中为命令添加别名,Mac OS 默认使用 bash。 可以在 ~/.bash_profile 文件中加入这行代码:
bash
~/.bash_profile
alias python='python3' # or alias python=/usr/local/bin/python3.7 # or alias python="/Library/Frameworks/Python.framework/Versions/3.7/bin/python3.7"
当然也可以通过执行命令(如果你使用的是 zsh,请替换 .bashrc 为 .zshrc):
zsh
.bashrc
.zshrc
echo "alias python=/usr/local/bin/python3.7" >> ~/.bashrc
打开一个新的 Shell 会话,这些别名(alias)将可用。如果您希望它在当前会话中有效,则必须执行这条命令:
source ~/.bash_profile
您可以通过符号链接(symbolic link)解决它:
unlink /usr/local/bin/python ln -s /usr/local/bin/python3.7 /usr/local/bin/python # or ln -s -f /usr/local/bin/python3.7 /usr/local/bin/python
当然,不要忘记将 pip 更新为 pip3!具体可参见文章:The right and wrong way to set Python 3 as default on a Mac。
pip install --upgrade pip
当使用如上命令进行更新 pip 时候,会报错误以及如下警告⚠️:
WARNING: You are using pip version 19.3.1; however, version 20.0.2 is available. You should consider upgrading via the 'pip install --upgrade pip' command.
对此,可以使用如下命令进行规避:
python -m pip install -U pip
open(path, encoding="utf-8")
以如上代码进行读取文件,有时候会报如下错误;是因为所读取的文件可能是隐藏文件所致,如:.DS_Store,可删除,或者代码过滤处理。
.DS_Store
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 3131: invalid start byte
有时候会报如下错误;则可能是因为所读取的文件,无法 decode 导致,如:.pdf 文件,可酌情处理。
.pdf
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9c in position 143: invalid start byte
如何在 Mac OS 上将 Python 的默认版本设置为 3.x?
设置别名
在系统范围内更改默认的 python 版本会破坏某些依赖 python2 的应用程序。您可以在大多数 shell 中为命令添加别名,Mac OS 默认使用
bash
。 可以在~/.bash_profile
文件中加入这行代码:当然也可以通过执行命令(如果你使用的是
zsh
,请替换.bashrc
为.zshrc
):打开一个新的 Shell 会话,这些别名(alias)将可用。如果您希望它在当前会话中有效,则必须执行这条命令:
符号链接
您可以通过符号链接(symbolic link)解决它:
当然,不要忘记将 pip 更新为 pip3!具体可参见文章:The right and wrong way to set Python 3 as default on a Mac。
如果更新 pip
当使用如上命令进行更新 pip 时候,会报错误以及如下警告⚠️:
对此,可以使用如下命令进行规避:
Python 读取文件
以如上代码进行读取文件,有时候会报如下错误;是因为所读取的文件可能是隐藏文件所致,如:
.DS_Store
,可删除,或者代码过滤处理。有时候会报如下错误;则可能是因为所读取的文件,无法 decode 导致,如:
.pdf
文件,可酌情处理。