簡體   English   中英

“virtualenv”和“-m venv”在創建虛擬環境中有什么區別(Python)

[英]What's the difference between “virtualenv” and “-m venv” in creating Virtual environments(Python)

對不起,如果我聽起來有點愚蠢。 我很困惑這兩者之間有什么區別
虛擬環境 myvenv

-m venv myvenv
第一個對我來說很適合創建虛擬環境,而另一個則不行。
我 CD 進入我的開發目錄並使用“ virtualenv myvenv ”,它創建了虛擬環境。 但是如果我使用“ -m venv myvenv ”它只會給出錯誤。 請幫我理解

venv是一個直接隨 python 3 提供的包。所以你不需要pip install任何東西。

virtualenv是一個獨立的庫,可在https://virtualenv.pypa.io/en/stable/使用,並且可以使用pip安裝。

它們解決相同的問題並以非常相似的方式工作。

如果您使用 python3,我建議避免“額外”的依賴並堅持使用venv

你的錯誤可能是因為你使用了 Python2/pip2

我認為virtualenv 文檔對此解釋得最好:

venv是自 Python 3.3 以來集成到標准庫中的virtualenv的子集。 子集意味着只有virtualenv的部分功能在venv

  • venv可能較慢,因為它沒有“ app-data種子方法”
  • venv僅通過升級 Python 版本進行升級,而virtualenv則使用 pip 進行更新。
  • venv不可擴展
  • virtualenv有更豐富的編程 API (描述虛擬環境而不創建它們)。 此處查看venv API
  • venv不能自動發現任意安裝的 python 版本,而virtualenv可以。 這意味着,如果要使用 PATH 中第一個版本以外的其他 Python 版本,則必須使用venv指定python可執行文件的完整路徑。 使用virtualenv ,您可以只提供版本號。 請參閱 virtualenv 文檔中的python 發現

對我來說,差異非常微妙,唯一的實際差異是venv包含在標准庫中(自 3.3 起)。 我一直在使用python -m venv venv很長一段時間,從來不需要替代方案。

暫無
暫無

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

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