我看過這個問題Do I need to use virtualenv with Vagrant?但我想知道相反的。爲什麼我應該使用vagrant如果我使用virtualenv?
我編程並部署到UNIX/Linux環境(分別爲MAC OSX和Ubuntu),並使用virtualenv保持環境隔離。
其實我從來沒有遇到任何問題,但我看到一些人和很多教程,建議一起使用它們,我想知道是否和爲什麼要使用流浪者,有人可以向我解釋嗎?
我看過這個問題Do I need to use virtualenv with Vagrant?但我想知道相反的。爲什麼我應該使用vagrant如果我使用virtualenv?
我編程並部署到UNIX/Linux環境(分別爲MAC OSX和Ubuntu),並使用virtualenv保持環境隔離。
其實我從來沒有遇到任何問題,但我看到一些人和很多教程,建議一起使用它們,我想知道是否和爲什麼要使用流浪者,有人可以向我解釋嗎?
virtualenv和Vagrant之間的區別在於,virtualenv只是關於單獨的Python安裝,而Vagrant是關於整個機器。
的virtualenv隔離Python解釋器和一臺計算機上Python的依賴關係,因此您可以用自己的依賴安裝多個Python項目彼此旁邊。但是對於機器的其餘部分,virtualenv不會做任何事情:您仍然擁有使用Mac OS X/Linux軟件包管理器安裝的全局依賴項/軟件包,並且它們在virtualenvs之間共享。
流浪者指定整個機器:它允許您指定Linux發行版,要安裝的軟件包以及要安裝該項目的操作。所以如果你想在這臺機器上啓動一個帶有多個Python項目的Vagrant框,你仍然可以使用virtualenv來保持Python依賴關係的分離。
例如,在Mac OS X開發人員,在Ubuntu Linux開發人員可以使用的virtualenv保持他們的Python項目安裝,但他們會需要使用放浪要本機啓動在同一臺機器(例如,一個Linux分佈與部署的服務器相匹配)運行完全相同的Linux版本,並在其上安裝相同的軟件包並使用相同的Python項目安裝。
所以,回答你的問題,使用Vagrant的原因是它允許你在本地創建一個安裝了確切軟件包的機器,而virtualenv只關心它自己的Python依賴關係。
感謝您的解釋@Simeon – 2017-05-17 15:47:58