簡體   English   中英

PyCharm 與命令行的虛擬環境對比

[英]Virtual Environment from PyCharm vs. Command Line

我對創建 Python 應用程序還很陌生。 我玩弄了一些使用 PyCharm 的小教程和應用程序,並且總是使用 Virtualenv 環境創建一個新項目,最后在我的項目文件夾下有一個“venv”文件夾。 我對此沒有任何問題,但話又說回來,我沒有做過任何大型項目。

但是,我一直想學習 Flask 想嘗試以正確的方式創建一個新的 Flask 項目。 我在許多教程中看到人們正在從(Windows/Linux)命令行創建(和激活)虛擬環境,即使他們使用的是 PyCharm,我只是想知道有什么區別?

當我在使用 Virtualenv 創建的 PyCharm 中的項目上工作時,我在處理之前不會激活 venv。 這是錯誤的還是 PyCharm 處理的東西? 如果 venv 是從命令行創建的呢? 如果在那里處理項目,它是否仍由 PyCharm 處理(激活)。 那么文件夾結構呢? 這是否受虛擬環境創建方式的影響? 在虛擬環境中創建 Flask 項目時,我是否可以在某個地方找到一些設置/文件夾結構的“最佳實踐”?

如果 PyCharm 配置為使用 VirtualEnv 並告知它在哪里(更具體地說,VirtualEnv 中相應的 Python 二進制文件在哪里),它會為您激活 VirtualEnv。

手動創建的 VirtualEnvs 和 PyCharm 創建的 VirtualEnvs 沒有真正的區別。 (除了你 select 創建一個框架,以防這與 PyCharm 的配置不同。)

如果需要,您可以手動創建一個,然后將 PyCharm 指向它。 在創建項目期間或稍后使用“設置”對話框(請參閱設置 -> 項目 -> 項目解釋器)。 在 IDE 內工作時,它不會有任何不同的處理並為您激活它。

虛擬環境幾乎只是一個文件夾,其中存儲已安裝的 Python 包並將它們與系統的 rest 隔離開來。 這樣您就可以處理可能對外部包都有競爭要求的不同項目,而不會陷入沖突。 “激活”虛擬環境只是在您當前的 shell 中設置某些環境變量,因此它將使用來自該環境的包。 除了您當前的 shell 之外,“激活”環境永遠不會產生任何影響。 所以在命令行上激活環境不會對 PyCharm 做任何事情。

PyCharm 集成了 Python 解釋器,為您提供許多額外的功能。 你告訴 PyCharm 你想為你的項目使用哪個解釋器,它會找出它有哪些可用的包,它是什么版本,並自動正確設置一切以從 PyCharm 等運行你的代碼。你可以告訴 Z4149CE0EE30A909A28F620系統的 Python 解釋器或現有的虛擬環境甚至使用它來創建新環境。 除了在項目設置中選擇正確的解釋器/環境之外,您不需要做任何特別的事情。

如果您不打算從命令行使用環境,則沒有理由從命令行激活環境。 當然,使用 Flask 並從命令行運行其服務器並使其在后台運行可能會很有用。 不確定 PyCharm 是否會給您一個簡單或集成的選項,讓您在后台運行持久進程。 您仍然可以在 PyCharm 中使用相同的虛擬環境 select 並使用它直接從 PyCharm 中運行您的測試,使用它的調試器等。

我更喜歡將venv保留在項目文件夾之外,並將所有 venv 存儲在~/.virtualenvs/等中。 它整理項目文件夾並防止意外將這些文件簽入版本控制系統。

我只是想知道有什么區別?

有許多用於創建和使用虛擬環境的工具,它們之間沒有區別,它們之間的唯一區別是它們的命令語法(或它與用戶交互的方式,例如對於 Pycharm,您可以通過 GUI 設置一些設置)。

這是錯誤的還是 PyCharm 處理的東西?

它沒有任何問題。 只要您在項目的根目錄中有一個venv (或.venv )目錄並且它對任何用戶都是可執行的,Pycharm 就會使用它並為您激活這個虛擬環境(不告訴您)。 如果 Pycharm 無法做到這一點,(因為找不到 venv 或激活/執行它的麻煩。)然后它會顯示消息來解決它的問題,並且在你修復它們之前它無法運行你的項目。

最好在項目的根目錄中的.venv目錄中創建虛擬環境。 (有點傳統)

請參閱python 虛擬環境配置 pycharm virtualenv

暫無
暫無

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

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