Python 虚拟环境困惑

标签 python r anaconda virtualenv reticulate

我使用 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 freezeconda env exportpipconda 都是包管理器,如果您使用 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

希望这对您有所帮助!

关于Python 虚拟环境困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63568209/

相关文章:

python - 迭代所有不相交的对

python - Pandas ,阅读 CSV 忽略额外的逗号

read.csv row.names

python - 尝试 numba 的巨大错误

python - 在两列上使用 groupby() 时获取每组的最大值 ~Python

python - Pytorch BCELoss 对相同输入使用不同的输出

Python/Selenium 组合多个列表并通过可见文本显示

r - 多页,每页有几个 ggplot2 图表和表格,来自多个数据框,每个页面都是一个共同因素的水平

r - 我将 stat_regline_equation 与 ggscatter 一起使用。有没有办法指定系数的有效数字?

tensorflow - 如果所需的setuptools版本早于默认版本,如何安装Keras?