我使用 python 学习数据科学已经大约一年了。我已经对语法和模型创建感到非常满意。我专门使用 Google Colab,因为它非常方便,而且我喜欢笔记本风格。然而,我不明白的一件事是环境问题。虽然我使用 Colab,但我的机器上确实有 python 和 anaconda,并且使用以下格式安装了各种软件包:pip install (package name)
。当我打开终端时,第一行以 (base)
开头,当我检查 anaconda 导航器中的 Environments
选项卡时,看起来好像我安装了所有这些软件包进入名为 base (root)
的基本环境?是对的吗?如果是这样,那么我的环境名称是什么?与 venv 相比,基础环境是什么?
我问这个问题的原因是,如果我将来决定使用 IDE,我需要将我的环境设置为能够运行包,对吗?
只是为了好玩,我想尝试使用 R 及其 reticulate允许在 R 中使用 python 的包。如 this question 的答案中所述,我需要先设置虚拟环境,然后才能在 R 中使用 python。我的虚拟环境是 base (root)
吗?
对于所有这些环境问题,我完全是个菜鸟。再次,我刚刚打开终端并为我安装的所有软件包输入 pip install (package name)
。感谢您提前提供的任何帮助。
最佳答案
因此,从您的描述来看,您计算机上的默认 Python 安装是通过 Anaconda 进行的。如果是这种情况,base
实际上将是您正在使用的 conda 虚拟环境的名称。
虚拟环境可能很棘手,所以我将向您介绍我通常在这里所做的事情。
首先,您始终可以在 Mac/Linux 上使用 which
命令来检查您当前正在使用的 Python 安装,或者如果您使用的是 Windows,则使用该命令可能是 where
(如果您使用的是 Windows,这个答案可能会有所帮助: equivalent of 'which' in Windows 。)
(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 freeze
或conda env export
。 pip
和 conda
都是包管理器,如果您使用 Anaconda Python 安装,那么您(通常)可以使用其中任何一个将包安装到虚拟环境中。
(附注:“虚拟环境”是一个通用概念,可以通过不同方式实现。conda
和 virtualenv
都是在 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
希望这对您有所帮助!
关于Python 虚拟环境困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63568209/