本教程将构建 JupyterLab 的 Anaconda Navigator 应用程序(应用程序)。
需要对构建配方中的文件进行三处修改才能将包声明为应用程序。然后,我们将使用这些配方修改来构建 JupyterLab。构建包后,我们会将其上传到 Anaconda.org 频道。最后,在 Anaconda Navigator 中添加频道后,该应用程序将出现在“主页”窗格中。
这是给谁的?
本教程适用于希望从给定配方生成 Anaconda Navigator 应用程序 conda 包的 Windows、macOS 和 Linux 用户。建议先了解 conda-build 或 conda 配方。
开始之前
笔记
为 Anaconda Navigator 构建的应用程序应该有一个图形用户界面。并非所有 conda 包都具有图形界面。
您应该已经安装了 Miniconda 或 Anaconda。安装 conda-build:
conda install conda-build
建议您使用最新版本的 conda 和 conda-build。要升级这两个软件包,请运行:
conda upgrade condaconda upgrade conda-build
您还需要在 Anaconda.org 上有一个帐户。您的用户名将被称为您的 Anaconda.org 频道。
使用配方
首先,创建一个名为 jupyterlab 的新目录,然后切换到新目录:
mkdir jupyterlabcd jupyterlab
通过打开文本文件创建配方并将其命名为 meta.yaml。从原料复制配方:
{% set version = "1.2.4" %}
{% set sha256 = "6adb88acd05b51512c37df477a18c36240823a591c2a51bf6556198414026d8f" %}
package:
name: jupyterlab
version: {{ version }}
source:
fn: jupyterlab-{{ version }}.tar.gz
url: https://pypi.io/packages/source/j/jupyterlab/jupyterlab-{{ version }}.tar.gz
sha256: {{ sha256 }}
build:
noarch: python
number: 0
script: {{ PYTHON }} -m pip install --install-option="--skip-npm" . -vv
entry_points:
- jupyter-lab = jupyterlab.labapp:main
- jupyter-labextension = jupyterlab.labextensions:main
- jupyter-labhub = jupyterlab.labhubapp:main
- jlpm = jupyterlab.jlpmapp:main
app:
entry: jupyter lab
icon: icon.png
summary: JupyterLab PRE-ALPHA
type: desk
requirements:
host:
- python >=3.5
- pip
- nodejs >=8
run:
- python >=3.5
- jupyterlab_server >=1.0.0,<2.0.0
- notebook >=4.3.1
- tornado !=6.0.0,!=6.0.1,!=6.0.2
- jinja2 >=2.10
test:
requires:
- nodejs
imports:
- jupyterlab
commands:
- jupyter lab --version
- jlpm --version
- jlpm versions
- jupyter labextension list
- jupyter lab path
- jupyter lab build
- jupyter lab clean
about:
home: https://github.com/jupyterlab/jupyterlab
license: BSD-3-Clause
license_family: BSD
license_file: LICENSE
summary: >
An extensible environment for interactive and reproducible computing, based
on the Jupyter Notebook and Architecture.
doc_url: https://jupyterlab.readthedocs.io
dev_url: https://github.com/jupyterlab/jupyterlab
description: >
JupyterLab is the next-generation user interface for Project Jupyter. It
offers all the familiar building blocks of the classic Jupyter Notebook
(notebook, terminal, text editor, file browser, rich outputs, etc.) in a
flexible and powerful user inteface. Eventually, JupyterLab will replace
the classic Jupyter Notebook.
JupyterLab can be extended using extensions that are npm packages and use
our public APIs. You can search for the GitHub topic or npm keyword
`jupyterlab-extension` to find extensions. To learn more about extensions,
see our user documentation.
JupyterLab is suitable for general usage. For JupyterLab extension
developers, the extension APIs will continue to evolve.
extra:
recipe-maintainers:
- jasongrout
- blink1073
- jochym
- ian-r-rose
- afshin
- ellisonbg
构建架构
给定的配方是一个 noarch 配方。这与旧版本的 Navigator 不兼容。在构建部分下,删除.noarch: python
meta.yaml 中的应用入口
要将 conda 包声明为应用程序,必须将 app 参数添加到 meta.yaml 文件中。应用程序部分将包含三个键:条目、摘要和类型。对于 JupyterLab 配方,将 meta.yaml 中的 app 部分替换为以下值。
在 app 部分,入口标签定义了 Anaconda Navigator 如何启动包。对于 JupyterLab,Windows、macOS 和 Linux 操作系统需要单独的条目标签。
在您的文本编辑器中,打开 meta.yaml 文件并添加以下行。在 Windows 和 Linux 上,入口标签是:
app:
entry: jupyterlab . [win]
entry: jupyterlab . [linux]
启动脚本
对于 macOS,还必须提供启动脚本。在文本编辑器中,在 conda-build recipe 目录中创建一个名为 jupyterlab_mac.command 的新文件。这个文件的内容是:
DIR=$(dirname $0)
$DIR/jupyter-lab ${HOME}
Build.sh 脚本
为了确保文件被安装,在与 meta.yaml 相同的目录中创建一个新文件。将其命名为 build.sh 并将这些行添加到 build.sh 脚本中:
$PYTHON -m pip install . --no-deps --ignore-installed -vvif [ `uname` == Darwin ]then
cp $RECIPE_DIR/jupyterlab_mac.command $PREFIX/binfi
删除 meta.yaml 中 build 部分下的脚本键。
编译.bat
创建一个名为 build.bat 的新文件。包括以下这些:
%PYTHON% -m pip install . --no-deps --ignore-installed -vv
进入键
然后在 meta.yaml 中,将此行添加到 app 部分:
完成的应用程序部分应如下所示:
笔记
应用程序图标默认为 Anaconda 徽标。
构建
现在您已准备好 conda-build 配方,您可以使用 conda-build 工具来创建包。您必须在 Windows、macOS 和 Linux 机器上分别构建和上传 JupyterLab 包,以便该包在所有平台上可用。如果您已经在 JupyterLab 目录中,则可以在终端中输入。否则输入.conda build .conda-build jupyterlab
当 conda-build 完成时,它会显示 conda 包的确切路径和文件名。 如果 conda-build 命令失败,请参阅故障排除部分。
Windows 示例文件路径: C:\Users\username\miniconda\conda-bld\win-64\jupyterlab-1.2.4-py38_0.tar.bz2
macOS 示例文件路径: /Users/username/anaconda3/conda-bld/osx-64/jupyterlab-1.2.4-py38_0.tar.bz2
Linux 示例文件路径: /home/username/miniconda/conda-bld/linux-64/bjupyterlab-1.2.4-py38_0.tar.bz2
笔记
路径和文件名将根据您的安装和操作系统而有所不同。
为下一步保存路径和文件名信息。
上传到 Anaconda.org
现在您可以将新的本地包上传到 Anaconda.org。首先,从终端登录到 Anaconda.org:anaconda login
系统会要求您提供 Anaconda.org 帐户名和密码。如果登录成功,您将看到如下输出:
笔记
此步骤必须在 root conda 环境中完成。
现在您已登录您的频道,您可以按如下方式上传 JupyterLab conda 包:
视窗用户:anaconda upload C:\Users\username\miniconda\conda-bld\win-64\jupyterlab-1.2.4-py38_0.tar.bz2
Linux 和 macOS 用户:anaconda upload /Users/username/miniconda/conda-bld/osx-64/jupyterlab-1.2.4-py38_0.tar.bz2
笔记
将您的用户名、路径和文件名更改为您在步骤 2 中保存的确切用户名、路径和文件名。这些将因您的安装和操作系统而异。
有关 Anaconda.org 的更多信息,请参阅Anaconda.org 文档页面。
配置 Anaconda 导航器
现在 JupyterLab 包已上传到您的 Anaconda.org 频道,您需要将该频道添加到 Anaconda Navigator。
启动 Anaconda Navigator 应用程序。在 Windows 和 Linux 中,它可以从“开始”菜单中使用。在 macOS 上,您可以在桌面上或通过 Spotlight 找到它。
打开最左侧的环境窗格。
要添加您的频道,请先单击“频道”按钮。其次,单击添加按钮。第三,输入 Anaconda.org 频道的 URL:https : //conda.anaconda.org/channel
笔记
将“频道”替换为您的 Anaconda.org 用户名。
按 Enter 并选择更新频道。
关闭并重新启动 Anaconda Navigator。JupyterLab 应用程序将显示在“主页”窗格中。
故障排除
A. Conda 构建失败
如果 conda 配方无法构建,请参阅故障排除指南。
B. 应用程序没有出现在主面板上
检查 conda 包是否已上传到您的 Anaconda.org 频道。检查您的频道是否已添加到频道列表中。
您可能必须删除 .anaconda/navigator 目录并重新启动 Navigator。该目录位于您的主目录中。
C. 应用程序不启动
如果安装应用程序后它没有启动,请使用以下命令在命令行上检查它是否正常工作:conda run jupyterlab
如果 JupyterLab 正确启动,则您可能必须删除 .anaconda/navigator 目录并重新启动 Navigator。该目录位于您的主目录中。