2017-06-13 44 views
2

我有一個名爲'edge'的現有virtualenv。它使用Python 3.5.2。我已經將我的Python解釋器升級到3.6,我希望'edge` env使用3.6。將現有的virtualenv更新爲使用Python 3.6

我應該用什麼命令update edge的解釋器?

我搜索了所有的答案,但我可以找到的是創建一個新的環境。就我而言,我不想創建一個新的環境。

+3

edge存在爲python3.5安裝的所有二進制軟件包與python3.6不兼容 - 你最好的選擇是使用'edge/bin/pip freeze> reqs.txt && virtualenv edge2 -ppython3.6 && edge2/bin/pip install reqs.txt ' –

+0

thx @AnthonySottile你介意寫一個答案,以便我可以接受它嗎? – Cheng

回答

1

爲python3.5安裝的所有二進制包(例如numpysimplejson)與python3.6不兼容(它們不兼容)。因此,您不能將virtualenv升級/降級到不同版本的python。

最好的辦法是根據原始virtualenv中安裝的軟件包創建一個新的 virtualenv。您可以通過以下操作

edge/bin/pip freeze > reqs.txt 
virtualenv edge2 -p python3.6 
edge2/bin/pip install -r reqs.txt 

注意virtualenvs 一般是不可移動的親近,所以如果你希望它在你可能會希望下面的過程,而不是

edge/bin/pip freeze > reqs.txt 
mv edge edge_old 
virtualenv edge -p python3.6 
edge/bin/pip install -r reqs.txt 
# optionally: rm -rf edge_old 
+0

Python 3.6推薦使用: python3 -m venv edge – user2881558