簡體   English   中英

pyenv或virtualenv對Django是必不可少的嗎?

[英]Is pyenv or virtualenv essential for Django?

第一次,我使用virtualbox和vagrant(CentOS 7)為Django創建了一個環境。

但是我看到的每個教程都說我需要使用pyenv或virtualenv。 我認為它們用於為Django創建虛擬環境。 但是我不知道為什么我需要使用pyenv或virtualenv。 (例如,Cakephp3不需要pyenv或virtualenv之類的軟件包。)

而且我使用的是virtualbox和vagrant,它們已經是虛擬環境,所以我認為我正在另一個虛擬環境中創建虛擬環境。 我不確定這是否有意義。 如果我使用的是virtualbox或vmware等虛擬環境,也許不需要pyenv和virtualenv嗎?

它們對Django是必不可少的嗎? 在實際服務器中部署Django時,是否仍然需要使用pyenv或virtualenv?

不是必需的,但是建議您在開始處理Django項目時在虛擬環境中工作。

虛擬環境的重要性。

  • 虛擬環境是您在計算機上擁有多個版本的python而不相互沖突的一種方式,每個版本都可以視為開發環境,並且您可以擁有彼此隔離的不同版本的python庫和模塊。

  • 虛擬環境以最簡單的方式為您提供獨立於主機操作系統的開發環境。 您可以在virtualenv的/bin文件夾中安裝和使用必要的軟件,而不是使用主機上安裝的軟件。

  • 很多時候,不同的項目需要同一軟件包的不同版本,並且將每個項目保持在單獨的虛擬環境中會很有幫助。

強烈建議為每個項目設置單獨的virtualenv。 一旦習慣了,它對於開發來說似乎是微不足道的,並且非常有用,從而消除了很多將來的麻煩。

不,在Django中使用virtualenv並不是必須的,但建議這樣做,因為它可以隔離用於系統項目的python或庫的多個版本。 如果您不使用virtualenv,則該庫將成為python主目錄的一部分。

例如:如果您將某個庫的版本1用於一個項目,后來又在其他項目中使用,或者需要使用該庫的版本2,則使用特定的virtualenv(如果您同時在多個項目上工作) ),從而使您可以毫無問題地使用多個庫。

VirtualBox可將您的開發操作系統與常規操作系統隔離。 Virtualenv將項目的Python軟件包與系統Python軟件包隔離。

許多Linux發行版將Python軟件包作為其他軟件的依賴項安裝在系統范圍的site-packages目錄中。 Python沒有辦法用相同的名稱來版本化軟件包,因此當您的項目依賴於package==10.0.0但您的發行版已安裝package==0.0.2時,您將遇到問題,您將無法升級而不會破壞某些內容。

虛擬環境非常輕巧。 它們實際上只是PATH環境變量中的一個新條目,並且進行了一些配置更改,以使Python僅在特定位置顯示軟件包。

除了鍵入一個額外的命令來激活它之外,使用virtualenv並沒有真正的弊端。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM