nicejade / experience-precipitate

🏹 On the knowledge, tools, thinking and so on experience precipitation.
https://nicelinks.site/
3 stars 1 forks source link

Python 使用心得微录 #19

Open nicejade opened 4 years ago

nicejade commented 4 years ago

如何在 Mac OS 上将 Python 的默认版本设置为 3.x?

设置别名

在系统范围内更改默认的 python 版本会破坏某些依赖 python2 的应用程序。您可以在大多数 shell 中为命令添加别名,Mac OS 默认使用 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):

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

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

Python 读取文件

open(path, encoding="utf-8")

以如上代码进行读取文件,有时候会报如下错误;是因为所读取的文件可能是隐藏文件所致,如:.DS_Store,可删除,或者代码过滤处理。

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 3131: invalid start byte

有时候会报如下错误;则可能是因为所读取的文件,无法 decode 导致,如:.pdf 文件,可酌情处理。

UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9c in position 143: invalid start byte