构建 Anaconda Navigator 应用程序#

在本教程中,您将学习如何向 Anaconda Navigator 添加磁贴,以启动您的自定义应用程序。

以 JupyterLab feedstock 为基础,您将修改构建 recipe 中的文件,以将该包声明为 Navigator 的应用程序,然后重新构建并将其上传到 Anaconda.org 频道。之后,我们在 Navigator 中添加该频道,应用程序将作为磁贴显示在主页上。

本教程适合哪些用户?#

本教程适用于希望从给定 recipe 生成 Anaconda Navigator 应用程序 conda 包的用户。建议事先了解 conda-build 或 conda recipe。

先决条件#

注意

您计划从 Anaconda Navigator 启动的任何应用程序都应包含图形用户界面 (GUI) 组件。并非所有 conda 包都具有图形界面。

  1. 安装 MinicondaAnaconda

  2. 如果您安装了 Miniconda,则还需要安装 conda-buildanaconda-clientanaconda-navigator 包。打开 Anaconda Prompt(macOS/Linux 用户为终端)并运行以下命令

    # Ensure conda is up to date
    conda update --name base conda
    
    # Install conda-build
    conda install --name base conda-build anaconda-client anaconda-navigator
    
  3. 如有必要,请在 Anaconda.org 上创建帐户

    注意

    您的 Anaconda.org 用户名与您的 Anaconda.org 频道名称相同。

使用 recipe#

  1. 创建一个名为 myapp 的新目录,然后切换到该目录

    mkdir myapp
    cd myapp
    
  2. 通过打开一个文本文件并将其命名为 meta.yaml 来创建 recipe。

  3. 在本教程中,我们将使用来自 jupyterlab feedstock 的 jupyterlab recipe yaml 作为基础。

注意

由于 JupyterLab 已经是 Navigator 中的应用程序,因此您必须更改示例 jupyterlab meta.yaml 中的 name: 参数,以确保该应用程序在 Navigator 中正确显示。

package:
  name: my-test-app

meta.yaml 中的 App 参数#

meta.yaml 文件中的 app: 参数将 conda 包声明为应用程序。app 参数可以包含四个键:entrysummaryicontype

app:
  entry: jupyter lab
  icon: icon.png
  summary: JupyterLab {{ version }}
  type: desk
entry:

运行包所需的命令

icon:

(可选)您希望在 Navigator 中应用程序磁贴上显示的图像路径。

summary:

应用程序的简短描述。

type:

应用程序类型,例如 desk 代表桌面应用程序,web 代表 Web 应用程序。

构建#

现在您已经准备好 conda-build recipe,可以使用 conda-build 工具来创建包。

注意

您必须在 Windows、macOS 和 Linux 机器上分别构建和上传您的应用程序,以便该包在所有平台上都可用。

  1. 通过运行以下命令导航到您的 myapp 目录

    #Replace <PATH-TO-DIRECTORY> with the file path to your my app folder
    cd <PATH-TO-DIRECTORY>/myapp
    
  2. 通过运行以下命令构建您的应用程序

    conda build .
    
  3. 当 conda-build 完成时,它会显示 conda 包的确切路径和文件名。如果 conda-build 命令失败,请参阅故障排除部分。

    注意

    路径和文件名将因您的安装和操作系统而异。例如

    C:\Users\<USERNAME>\miniconda\conda-bld\win-64\my-test-app-1.2.4-py38_0.tar.bz2
    
    /Users/<USERNAME>/anaconda3/conda-bld/osx-64/my-test-app-1.2.4-py38_0.tar.bz2
    
    /home/username/miniconda/conda-bld/linux-64/my-test-app-1.2.4-py38_0.tar.bz2
    
  4. 保存路径和文件名信息以供上传步骤使用。

上传到 Anaconda.org#

现在您可以将新的本地包上传到 Anaconda.org。

  1. 首先,通过从终端运行以下命令登录到 Anaconda.org

    anaconda login
    
  2. 提供您的 Anaconda.org 用户名和密码。如果登录成功,您将看到类似于以下的输出

    Using Anaconda.org api site https://api.anaconda.org
    
    Username: jsmith
    jsmith's Password:
    login successful
    

    注意

    以下步骤必须在 base conda 环境中完成。要返回到您的 base 环境,请运行以下命令

    conda activate base
    
  3. 现在您已登录到您的频道,您可以上传 JupyterLab 包。选择适用于您操作系统的命令

    注意

    将您的用户名、路径和文件名更改为您构建应用程序时保存的确切用户名、路径和文件名。这些将因您的安装和操作系统而异。

    anaconda upload C:\Users\<USERNAME>\miniconda\conda-bld\win-64\my-test-app-1.2.4-py38_0.tar.bz2
    
    anaconda upload /Users/<USERNAME>/miniconda/conda-bld/osx-64/my-test-app-1.2.4-py38_0.tar.bz2
    

有关 Anaconda.org 的更多信息,请参阅 Anaconda.org 文档

配置 Anaconda Navigator#

现在 JupyterLab 包已上传到您的 Anaconda.org 频道,您可以将该频道添加到 Anaconda Navigator。

  1. 打开 Anaconda Navigator。

    从“开始”菜单中,搜索“Anaconda Navigator”并单击打开。

    打开 Launchpad,然后单击 Anaconda-Navigator 图标。

    1. 打开终端窗口。

    2. 使用以下命令打开 Navigator

      anaconda-navigator
      
  2. 要添加您的频道,请单击“Channels”(频道),然后单击“Add”(添加)。输入您的 Anaconda.org 频道的 URL:https://conda.anaconda.org/<CHANNEL>,将 <CHANNEL> 替换为您的 Anaconda.org 用户名。

  3. 按 Enter (Windows)/Return (Mac) 键,然后单击“Update Channels”(更新频道)。

  4. 关闭并重新启动 Anaconda Navigator。您的应用程序将显示在主页上。

故障排除#

我的应用程序未显示在主页上#

  • 检查 conda 包是否已上传到您的 Anaconda.org 频道。

  • 检查您的频道是否已添加到频道列表中。

  • 从您的主目录中删除 .anaconda/navigator 文件夹以重置 Navigator 的配置信息,然后重新启动 Navigator。

我的应用程序无法启动#

  1. 如果应用程序在安装后无法启动,请通过运行以下命令确认它可以通过命令行工作

    conda run jupyter lab
    

    注意

    如果您没有使用示例 feedstock,则 run 之后的命令将是您指定的 entry: 命令。

  2. 如果 JupyterLab 可以使用 conda 正确启动,请从您的主目录中删除 .anaconda/navigator 文件夹以重置 Navigator 配置信息,并使应用程序能够从 Navigator 应用程序正确启动。然后,重新启动 Navigator。

附加信息#

有关在 Windows 中添加“开始”菜单项的更多信息,请参阅 menuinst 文档。