2017-04-06 74 views
0

讓我先概述我想要的解決方案,然後詳細闡述如何實現這種狀態的具體問題。針對不同項目的虛擬環境和python版本

我很快就開始在Python中的兩個編碼項目。我之前使用過python,但從來沒有在這樣的大項目上使用過。我的理想場景是設置一個可以運行虛擬環境和各種項目的不同python版本的設置。一些研究指向我virtualenv/virtualenvwrapper和pyenv。它似乎使用pyenv-virtualenvpyenv-virtualenvwrapper有一個很好的方式來指定特定項目的virtualenvironment和python版本。

問題:一旦我爲特定項目設置了virtualenvironment和python版本,我可以輕鬆地在稍後的階段切換到新的python版本?比方說,我已經開始使用python 3.4開發項目A,並且在將來的一年中,我希望將所有內容都移至python 3.6。這是否可能以一種整潔的方式?

回答

1

肯定的:

$ rm -r my-python-3.4-env 
$ virtualenv -p python3.6 my-python-3.6-env 
$ source my-python-3.6-env/bin/activate 

換句話說,每一個虛擬環境僅僅是一個在它必要的文件夾。您使用source .../activate命令(在使用virtualenv的情況下)「激活」一個環境,並且輕鬆地離開它。要切換到不同的環境,只需使用特定的Python可執行文件創建一個新文件並將其激活即可。

你想要小心的是保持你的安裝可重複使用,這意味着如果你依賴外部模塊(現代項目通常會這樣做),你不想手動安裝每個依賴項,而是自動化。例如,您創建一個列出您的依賴關係的setuptools setup.py file,然後讓它自動安裝到您的新環境中:

$ source my-python-3.6-env/bin/activate 
(my-python-3.6-env) $ python setup.py develop 
+0

非常感謝!那正是我期待的! – math