簡體   English   中英

Python 虛擬環境混淆

[英]Python Virtual Environments Confusion

我已經使用 python 學習數據科學大約一年了。 我已經對語法和模型創建非常滿意。 我專門使用 Google Colab 只是因為它非常方便,而且我喜歡筆記本風格。 但是,我不明白的一件事是環境的東西。 雖然我使用 Colab,但我的機器上確實有 python 和 anaconda,並使用以下格式安裝了各種軟件包: pip install (package name) 當我打開終端時,第一行以(base)開頭,當我檢查 anaconda 導航器中的Environments選項卡時,似乎我將所有這些軟件包安裝到名為base (root)的基本環境中? 那正確嗎? 如果是這樣,那么我的環境名稱是什么? 與 venv 相比,什么是基礎環境?

我問的原因是因為如果我將來決定使用 IDE,我需要設置我的環境才能運行包,對嗎?

只是為了好玩,我想嘗試使用 R 及其允許在 R 中使用 python 的網狀包。正如這個問題的答案中所述,我需要先設置我的虛擬環境,然后才能在 R 中使用 python。我的虛擬環境是base (root)嗎? base (root)

我對所有這些環境的東西都是一個完全的菜鳥。 同樣,我剛剛打開我的終端並為我安裝的所有軟件包輸入pip install (package name) 提前感謝您的任何幫助。

因此,從您的描述來看,您計算機上的默認 Python 安裝似乎是通過 Anaconda 安裝的。 如果是這種情況, base實際上將是您正在使用的 conda 虛擬環境的名稱。

虛擬環境可能很棘手,因此我將向您介紹我通常在此處執行的操作。

首先,您始終可以通過在 Mac/Linux 上使用which命令來檢查您當前使用的是哪個 Python 安裝,或者如果您使用的是 Windows,則該命令可能位於where (如果您使用的是 Windows,此答案可能會有所幫助: 相當於 Windows 中的“which” 。)

(base) ➜  ~ which python
/Users/steven/miniconda3/bin/python

從上面可以看出,我默認的Python是通過Miniconda的,它只是Anaconda的一個小版本。

這意味着當您使用pip安裝軟件包時,這些軟件包將安裝到此base conda 環境中。 而且,順便說一句,您也可以將which命令與 pip 一起使用,只是為了仔細檢查您正在使用當前環境中的pip版本:

(base) ➜  ~ which pip
/Users/steven/miniconda3/bin/pip

如果要查看當前安裝的軟件包列表,可以執行pip freezeconda env export pipconda都是包管理器,如果您使用的是 Anaconda Python 安裝,那么您(通常)可以使用任一方式將包安裝到您的虛擬環境中。

(快速旁注:“虛擬環境”是一個可以以不同方式實現的一般概念condavirtualenv都是在 Python 中使用虛擬環境的方法。我也是一名數據科學家,我使用conda虛擬環境。)

如果您想使用 conda 創建一個新的虛擬環境,這非常簡單。 首先,您可以創建環境並立即安裝一些軟件包,例如 pandas 和 matplotlib。 然后您可以激活該環境,檢查您的 python 版本,然后停用它。

(base) ➜  ~ conda create -n my-new-environment pandas matplotlib
(base) ➜  ~ which python
/Users/steven/miniconda3/bin/python
(base) ➜  ~ conda activate my-new-environment
(my-new-environment) ➜  ~ which python
/Users/steven/miniconda3/envs/my-new-environment/bin/python
(my-new-environment) ➜  ~ conda deactivate
(base) ➜  ~ which python
/Users/steven/miniconda3/bin/python

而且,如果您想查看當前可用的 conda 虛擬環境,可以運行conda env list

這是 conda 環境的文檔,我一直在參考: https : //docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html

我希望這是有幫助的!

暫無
暫無

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

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