是否有一種標準的方式來將python2切換爲python3作爲默認python,類似於如何使用virtualenv在不同的沙盒python環境之間切換?在python2和python3之間切換作爲默認python
我想避免手動擺弄符號鏈接和PATH變量,以便解決方案是可移植的。
由於是關於切換python版本,所以最好不要使用python編寫解決方案,而應該使用bash或其他便攜方式。
理想情況下,我想爲nodejs找到類似於nvm的東西,或者爲Ruby用rbenv。
是否有一種標準的方式來將python2切換爲python3作爲默認python,類似於如何使用virtualenv在不同的沙盒python環境之間切換?在python2和python3之間切換作爲默認python
我想避免手動擺弄符號鏈接和PATH變量,以便解決方案是可移植的。
由於是關於切換python版本,所以最好不要使用python編寫解決方案,而應該使用bash或其他便攜方式。
理想情況下,我想爲nodejs找到類似於nvm的東西,或者爲Ruby用rbenv。
This向我們展示瞭如何使用update-alternatives
和/或~./bashrc
使用別名:alias python=/usr/local/bin/python2.7
一些調查研究後,它看起來像一個可能的解決方案可能是pyenv與在pyenv tutorial但它只能識別一個單全系統的Python運行時(無論是默認的那一刻所描述的用法),和不提供在系統範圍的python2和python3之間切換的選項。
貌似pyenv只能在系統Python和任何經由pyenv顯式安裝的版本可通過所有pyenv install --list
可以看出並用例如安裝的之間切換pyenv install 3.5.2
。換句話說,python3必須通過pyenv安裝,以便能夠在2和3之間切換。
Pyenv can integrate with virtualenv由於它包含所有版本的anaconda,miniconda,pypy,jython,stackless等等。這可能是安裝多個版本的python的最簡單的方法,它不會與你的軟件包管理器一起提供,也就是在舊版Linux發行版中,在它們的回購版中沒有現代python。
但是從長遠來看,所有的事情考慮,我發現,通過metatoaster提出的解決方案是簡單的,完全符合我的要求,因爲我可以使用python2的virtualenv沒有任何開銷同時創建python2和python3環境:
python -V
Python 2.7.12
mkdir -p ~/.virtualenvs && cd ~/.virtualenvs
virtualenv -p /usr/bin/python3 mypy3env
workon mypy3env
python -V
>>> Python 3.5.2
你必須用'virtualenv -p/usr/bin/python2 env2'和'virtualenv -p/usr/bin/python3 env3'創建虛擬環境,當然它們將是獨立的環境,你必須安裝依賴關係。 – metatoaster
@metatoaster:這是一個有趣的可能性 - 也就是說,例如爲Python 2安裝的'virtualenv'可用於創建Python 3環境(反之亦然)?這僅僅是可執行文件在這種情況下是重要的嗎? – ccpizza