基本上 python 在mac裡就有內建python 2.7
在學習python時,想利用python3.6的版本
所以就直接在官網上下載了3.6的版本
下載完後會有一個 IDLE還有 luncher
但是在終端機裡還是一樣是python2.7的版本
用Sublime Text 還是使用python2.7編譯
造成了些許的困擾
因此上網開始爬文怎麼管理多版本的python
正文開始
一開始先開啟終端機安裝 Homebrew 套件
Homebrew套件是mac的管理套件工具
https://brew.sh/index_zh-tw.html
安裝方式如下:
- 打開終端機
- 在bash層 輸入
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" - 依照指示,可能會請你輸入密碼安裝
- 最後安裝完成後 用 $ brew update 更新一下homebrew
相關 homebrew的指令如下,可以找目前mac裡的安裝套件
- $ brew search 套件名稱(在這邊可以試著打python) ==> 搜尋套件
- $ brew info 套件名稱 ==> 觀看套件資訊
- $ brew install 套件名稱 ==> 安裝指定套件
- $ brew list ==> 列出目前已下載的套件
- $ brew update ==> 更新homebrew套件管理程式
pyenv的好處是
- 可以選擇整體環境下使用哪個python版本
- 可以同時使用多個python的版本
- 提供"全部"每一個python版本的控管和下載
- 可以查詢在不同版本下的語法差異,對於開發者來說是很方便的事情
安裝方法就在終端機輸入 $brew install pyenv
就可以安裝完成!
安裝後,要在bash_profile 加入幾行指令設定初始化和路徑(在官網上也說要加入)
eval "$(pyenv init -)"
官網的說明如下:
Add pyenv init to your shell to enable shims and autocompletion. Please make sure eval "$(pyenv init -)" is placed toward the end of the shell configuration file since it manipulates PATH during the initialization.
加入此行的方式如下:
- 打開終端機
- 依次輸入:
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile - 最後重啟shell,輸入 $ exec $SHELL 即可
註:一開始安裝時我也忘記輸入,變成無法改變global python的版本
變成 我在終端機上
輸入 $python3 才能執行3.6版本的IDLE了
輸入 $ python 會執行 python2.7(內建版本)
但只要將這幾行指令寫入後,重啟之後,只要打 $ python 就會到指定global的python版本
就可以看到霹哩啪拉一堆python的版本
相關版本的差異可以自行搜尋
我選定的是3.6.1的版本
因此 安裝方式請在終端機輸入 $ pyenv install 3.6.1 -v
pyenv就會自動安裝好3.6.1的環境
安裝好之後,更新pyenv的資料庫,輸入 $ pyenv rehash
打 * 號的就是目前 global環境下使用的python版本
如何切換呢?
輸入指令 $ pyenv global 3.6.1 就會切換過來了
以上指令是參考此網址:
===================================================
在sublime Text中,我也想同時使用python2.7和 python3.6的執行
操作方式如下:
- 打開sublime Text,同時按 Command+Shift+P
- 輸入 install package,之後會有很多的套件可供安裝
- 安裝 sublimeREPL 套件
- 重複上述1-3步驟 安裝 Anaconda 套件
Anaconda的使用方式可以參考此網頁:
要可以在Sublime Text執行程式前
要先把Build System 先設定好
在裡面可以看見有原本預設的Python (會依照global的設定而走,所以如果global設定為3.6版本,就不需要再增加,直接command+b 就可以執行3.6環境下的程式了)
但是如果想要system是2.7,額外增加一個可以執行3.6版本的
就需要先把Build System 先設定好
Tools => Build System => New Build System
並複製貼上
{
"cmd": ["python3.6.1的位置", "-u", "$file"],
"file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)",
"selector": "source.python"
}
python3.6的位置,可以在終端機輸入
但是 位置是錯誤的,因為我們用pyenv去管理python套件
因此正確的輸入指令為
$ pyenv which python3.6
再把回覆的位址貼在紅色指令上後,存檔命名,我命名為python3.6.sublime-build
(之後系統會讀取前面的命名為 build system名稱)
之後使用 command + b 就可以compile python程式
也可以使用 command + shift + b 選擇要用 python或 python3.6的環境執行
然後可能有些程式碼不是符合Anaconda的標準
但是還是可以執行
只是程式碼會變得很亂被匡住,然後行數前會有大小黑點
因此在 Sublime Text -> Preference -> Package Settings -> Anaconda -> Settings - User
裡面
加入指令,存檔後即可:
{
"anaconda_linting":false
}
之後如果需要安裝python的套件
在終端機上使用
$ pip install 套件名稱
就可以在所有python版本下都安裝好套件!
也就歸功於 pyenv的控制和pip的強大了
在終端機上使用
$ pip install 套件名稱
就可以在所有python版本下都安裝好套件!
也就歸功於 pyenv的控制和pip的強大了
沒有留言:
張貼留言