创建项目#

在本教程中,我们将逐步介绍如何使用 environment.yml 文件在 conda 中设置新的 Python 项目。此文件将帮助您跟踪您的依赖项并与他人共享您的项目。我们将介绍如何创建项目,添加一个简单的 Python 程序,并使用新的依赖项更新它。

要求#

为了继续学习,您需要安装可用的 conda。如果您尚未安装 conda,请访问我们的安装指南,获取安装说明。

本教程严重依赖于使用计算机的终端(Windows 上的命令提示符或 PowerShell),因此熟悉使用基本命令(如 cdls)也很重要。

创建项目文件#

首先,我们需要一个目录来存放我们项目的文件。可以使用以下命令创建此目录

mkdir my-project

在此目录中,我们现在将创建一个新的 environment.yaml 文件,该文件将保存我们的 Python 项目的依赖项。在您的文本编辑器(例如 VSCode、PyCharm、vim 等)中,创建此文件并添加以下内容

name: my-project
channels:
  - defaults
dependencies:
  - python

让我们简要回顾一下此文件的每个部分意味着什么。

名称#

您的环境的名称。在这里,我们选择了名称“my-project”,但这可以是您想要的任何名称。

通道#

通道指定您希望 conda 在哪里搜索包。我们选择了 defaults 通道,但也可以在此处列出其他通道,例如 conda-forgebioconda

依赖项#

您的项目所需的所有依赖项。到目前为止,我们只添加了 python,因为我们知道这将是一个 Python 项目。稍后我们将添加更多。

创建我们的环境#

现在我们已经编写了一个基本的 environment.yml 文件,我们可以从中创建并激活一个环境。为此,请运行以下命令

conda env create --file environment.yml
conda activate my-project

创建我们的 Python 应用程序#

在我们安装了 Python 的新环境中,我们可以创建一个简单的 Python 程序。在您的项目文件夹中,创建一个 main.py 文件并添加以下内容

def main():
    print("Hello, conda!")


if __name__ == "__main__":
    main()

我们可以通过运行以下命令来运行我们的简单 Python 程序

python main.py
Hello, conda!

使用新的依赖项更新我们的项目#

如果您希望您的项目执行比上面的简单示例更多的操作,您可以使用 conda 通道上提供的数千个可用包之一。为了演示这一点,我们将添加一个新的依赖项,以便我们可以从互联网上提取一些数据并执行基本分析。

为了执行数据分析,我们将依赖 Pandas 包。要将其添加到我们的项目中,我们需要更新我们的 environment.yml 文件

name: my-project
channels:
  - defaults
dependencies:
  - python
  - pandas  # <-- This is our new dependency

完成此操作后,我们可以运行 conda env update 命令来安装新的包

conda env update --file environment.yml

现在我们的依赖项已安装,我们将下载一些数据用于我们的分析。为此,我们将使用美国环境保护署的 步行指数 数据集,该数据集可在 data.gov 上获取。您可以使用以下命令下载它

curl -O https://edg.epa.gov/EPADataCommons/public/OA/EPA_SmartLocationDatabase_V3_Jan_2021_Final.csv

提示

如果您没有 curl,您可以访问上面的链接,使用 Web 浏览器下载它。

对于我们的分析,我们有兴趣了解有多少百分比的美国居民居住在高步行性区域。这是一个我们可以使用 pandas 库轻松回答的问题。以下是如何进行操作的示例

import pandas as pd


def main():
    """
    Answers the question:

    What percentage of U.S. residents live highly walkable neighborhoods?

    "15.26" is the threshold on the index for a highly walkable area.
    """
    csv_file = "./EPA_SmartLocationDatabase_V3_Jan_2021_Final.csv"
    highly_walkable = 15.26

    df = pd.read_csv(csv_file)

    total_population = df["TotPop"].sum()
    highly_walkable_pop = df[df["NatWalkInd"] >= highly_walkable]["TotPop"].sum()

    percentage = (highly_walkable_pop / total_population) * 100.0

    print(
        f"{percentage:.2f}% of U.S. residents live in highly" "walkable neighborhoods."
    )


if __name__ == "__main__":
    main()

使用上面的代码更新您的 main.py 文件并运行它。您应该得到以下答案

python main.py
10.69% of Americans live in highly walkable neighborhoods

结论#

您刚刚被介绍使用 conda 中的 environment.yml 文件创建自己的数据分析项目。随着项目的增长,您可能希望添加更多依赖项,并将 Python 代码更好地组织成单独的文件和模块。

有关使用环境和 environment.yml 文件的更多信息,请参阅管理环境