前言
Mac上會自帶Python2和Python3各一個(gè)版本,但最好別動,因?yàn)檫@是給MacOS用的,不是給你用的。
我們可以使用pyenv和pyenv-virtualenv安裝自己的Python版本和Python虛擬環(huán)境。
pyenv用來管理python版本
pyenv-virtualenv用來管理某個(gè)python版本對應(yīng)的虛擬環(huán)境
我們選用手動安裝的方式,你也可以用homebrew安裝
1、安裝pyenv并且配置
git clone https://github.com/pyenv/pyenv.git ~/.pyenv
如果你的shell環(huán)境是.bash
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n? eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
source??~/.bash_profile
如果你是.zsh
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n? eval "$(pyenv init -)"\nfi' >> ~/.zshrc
source??~/.zshrc
到這里就安裝完成且配置好了,
2、安裝自己用的Python版本
查看可以安裝的Python版本。
pyenv install --list
我選擇3.8.6版本進(jìn)行安裝。
pyenv install 3.8.6
安裝過程中如果碰到報(bào)錯(cuò)? ?error: Unexpected output of 'arch' on OSX
解決方案是? ?arch -arch x86_64 env PATH=${PATH/\/opt\/homebrew\/bin:/} pyenv install 3.8.6
安裝完成后,目錄結(jié)構(gòu)如下:

使新安裝的Python版本全局生效
pyenv global 3.8.6
此時(shí)我們再輸入?python3,就可以看到Python版本已經(jīng)變了。

3、安裝virtualenv并且配置
我們以插件形式把virtualenv安裝到.pyenv目錄
git clone https://github.com/pyenv/pyenv-virtualenv.git? ??~/.pyenv/plugins/pyenv-virtualenv
如果你的shell環(huán)境是.bash
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
然后重啟shell就可以啦
exec "$SHELL"
如果你是.zsh
echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.zshrc
然后重啟shell就可以啦
exec "$SHELL"
至此,virtualenv已經(jīng)安裝完畢,此時(shí)的目錄結(jié)構(gòu)如下:

4、創(chuàng)建某個(gè)Python版本對應(yīng)的某個(gè)Python虛擬環(huán)境
首先創(chuàng)建一個(gè)虛擬環(huán)境 ,命令格式為?pyenv virtualenv <版本> <名稱>
pyenv? ?virtualenv? ?3.8.6? ? 3.8.6-zidonghua-ios
此時(shí)再看目錄結(jié)構(gòu):

激活這個(gè)虛擬環(huán)境 ,命令格式為?pyenv activate <名稱>? ?(反激活為 pyenv deactivate)
pyenv activate 3.8.6-zidonghua-ios
我們就可以在這個(gè)Python虛擬環(huán)境下愉快的玩耍啦!
可以使用 pip3 安裝各種Python庫,安裝的庫都是?3.8.6-zidonghua-ios 專屬的。
然而此時(shí)我遇到了下面的報(bào)錯(cuò)

于是乎我谷歌了一下,在?3.8.6-zidonghua-ios 文件夾下有個(gè)文件叫?pyvenv.cfg ,把里面的?include-system-site-packages = false 改為?true就好啦
5、虛擬環(huán)境里安裝各種Python工具庫
在這里我遇到坑了。。。
首先虛擬環(huán)境已經(jīng)激活了,which pip3 也是指向虛擬環(huán)境的pip3,但每次 pip3 install 都是安裝在了系統(tǒng)目錄下,而不是虛擬環(huán)境目錄下。最后排查了半天,發(fā)現(xiàn)時(shí)因?yàn)槲壹恿?--user

去掉 --user就好了。
強(qiáng)烈建議直接用PyCharm打開一個(gè)工程,關(guān)聯(lián)到這個(gè)虛擬環(huán)境

讓PyCharm關(guān)聯(lián)到工程里的?requirements.txt 自動安裝是最好的了。
但是要保證pip3的源已經(jīng)切到公司私有源了,執(zhí)行 pip3 config list 就可以看到啦。