使用包

概览

上传到 Anaconda.org 的所有文件都存储在包中。每个 Anaconda.org 包都在其自己的唯一 URL 上可见,具体取决于拥有包的用户的名称和包的名称。

用户可以创建一个 Anaconda.org 包,然后将文件上传到其中。

有关更多信息,请参阅

笔记

在整个任务中,用特定于您的项目的文本替换占位符文本USERNAMEPACKAGENAME

命名空间

命名空间是 Anaconda.org 的一部分,用户或组织可以在其中托管包。例如,用户命名空间 https://anaconda.org/travis包含由名为 的用户上传和共享的包travis

有关更多信息,请参阅命名空间

标签

标签是 Anaconda.org 上的 URL 的一部分,conda 在其中查找包。

包中的每个文件都可以用一个或多个标签进行标记,或者根本不标记以接受默认标签main.

有关更多信息,请参阅标签

使用包管理器

Anaconda.org 支持两个包管理器 condaPyPI。要使用 conda 或 PyPI 包,您必须使用它们相应的子域:

  • 要从用户安装 conda 包travis,请使用存储库 URLhttps://conda.anaconda.org/travis
  • 要从用户安装 PyPI 包travis,请使用存储库 URLhttps://pypi.anaconda.org/travis

Conda包

上传 conda 包

此示例展示了如何使用.conda 文件构建conda包并将其上传 到 Anaconda.org 。conda build

使用终端窗口或 Anaconda Prompt 执行以下步骤:

  1. 在开始之前,安装anaconda-clientconda-build

    conda install anaconda-client conda-build
    
  2. 选择要为其构建包的存储库。在这个例子中,我们使用一个简单的公共conda 测试包

    git clone https://github.com/Anaconda-Platform/anaconda-client
    cd anaconda-client/example-packages/conda/
    

    在这个目录中,有两个必需的文件, meta.yamlbuild.sh

    macOS 和 Linux 系统都是 Unix 系统。为 Unix 系统构建的包需要一个build.sh文件,为 Windows 构建的包需要一个 bld.bat文件,为 Windows 和 Unix 系统构建的包需要一个build.sh文件和一个bld.bat文件。所有包都需要一个meta.yaml文件。

  3. 要构建包,请关闭自动客户端上传,然后运行以下命令:conda build

    conda config --set anaconda_upload no
    conda build .
    

    以这种方式构建的所有包都放在Anaconda conda-bld目录的子目录中 。

  4. 您可以使用以下--output选项检查结果文件的放置位置 :

    conda build . --output
    
  5. 您可以使用 Anaconda upload命令将测试包上传到 Anaconda.org :

    anaconda login
    anaconda upload /path/to/conda-package.tar.bz2
    

    笔记

    替换/path/to/为您存储包的实际路径。

有关 conda 整体构建框架的更多信息,您可能还需要阅读文章构建 conda 包

安装 conda 包

您可以通过向 conda 配置添加通道来从 Anaconda.org 安装 conda 包。

使用终端窗口或 Anaconda Prompt 执行以下步骤:

  1. 因为 conda 知道如何与 Anaconda.org 交互,所以指定频道会sean转换为https://anaconda.org/sean

    conda config --add channels sean
    
  2. 您现在可以从 Sean 的 Anaconda.org 帐户安装公共 conda 包。尝试testcihttps://anaconda.org/sean/testci安装软件包 :

    conda install testci
    
  3. 您可以使用令牌和标签从频道安装软件包:

    conda install -c https://conda.anaconda.org/t/token/channel/label/labelname packagename
    

    笔记

    替换token为提供的令牌、channel用户频道、 labelname标签名称和packagename要安装的包名称。

PyPI 包

上传 PyPI 包

我们可以使用保存在anaconda-client 存储库中的一个小的公共示例包来测试 PyPI 包的上传。

使用终端窗口或 Anaconda Prompt 执行以下步骤:

  1. 首先从命令行克隆存储库:

    git clone git@github.com:Anaconda-Platform/anaconda-client.git
    cd anaconda-client/example-packages/pypi/
    
  2. 您现在可以使用setup.py脚本创建您的 PyPI 包:

    python setup.py sdist
    
  3. 该包现已构建为源 tarball 并准备上传:

    anaconda upload dist/*.tar.gz
    

    您的包裹现在可在 http://anaconda.org/USERNAME/PACKAGE

安装 PyPI 包

安装 PyPI 包的最佳方法是使用pip. 对于以下命令,我们使用我们在上面的示例中编写的包。在终端窗口或 Anaconda Prompt 中,运行:

pip install --extra-index-url https://pypi.anaconda.org/USERNAME/simple pypi-test-package

安装私有 PyPI 包

管理访问权限或将 PyPI 和其他包设为私有的最佳方法是创建组织,这允许您为每个包、笔记本或环境设置单独的权限。

您还可以使用令牌系统控制访问。所有 Anaconda.org URL 都可以使用前缀/t/$TOKEN来访问私有包。

在终端窗口或 Anaconda Prompt 中,运行:

TOKEN=$(anaconda auth --create --name YOUR-TOKEN-NAME)
pip install --index-url https://pypi.anaconda.org/t/$TOKEN/USERNAME/simple-test-package

笔记

替换YOUR-TOKEN-NAME为您创建的令牌的名称、USERNAME您的用户名和 simple-test-package实际的测试包名称。

上传包

  1. 要将包文件上传到 Anaconda.org,请使用终端窗口或 Anaconda Prompt 和上传命令:

    anaconda login
    anaconda upload PACKAGENAME
    

    Anaconda.org 会自动检测包和笔记本、包或笔记本类型及其版本。

  2. 您的包裹现在可在以下位置获得:

    https://anaconda.org/USERNAME/PACKAGENAME
    
  3. 任何人都可以从终端窗口或 Anaconda Prompt 使用客户端下载您的软件包:

    anaconda download USERNAME/PACKAGENAME
    

使用私有包

不再可能注册带有私人套餐的个人付费计划。任何过去拥有私人包的人仍然可以私下托管这些包。

默认情况下,任何有权访问存储库的人都可以访问上传到 Anaconda.org 的所有包、笔记本和环境。

上传到您在 Anaconda.org 上的用户频道的包可以使用 Web UI 标记为私有:

  1. 选择所需的包。

  2. 选择设置选项卡。

  3. 在侧边栏中选择管理员。

  4. 或者,您可以使用以下 URL 访问此页面:

    https://anaconda.org/username/packagename/settings/admin
    

笔记

Jupyter 笔记本和 conda 环境也可以使用此过程和 URL 标记为私有。

笔记

其他 Anaconda.org 用户可以使用令牌或登录来访问您的私人包。

带有令牌的私有包

笔记

替换token为提供的令牌、channel用户频道、 labelname标签名称和packagename要安装的包名称。

要使您的私人包可以使用令牌访问:

  1. 首先 为客户端创建一个包含以下范围的访问令牌

    conda:download
    

    或者,在 Web UI 中使用:

    Allow private downloads from conda repositories
    

    令牌是一个随机的字母数字字符串,用于安装包或添加要从中安装私有包的频道。

  2. 使用提供的令牌,可以config从终端窗口或 Anaconda Prompt添加用户频道 :

    conda config --add channels https://conda.anaconda.org/t/token/channel
    
  3. 令牌也可用于安装软件包,而无需先添加频道。在终端窗口或 Anaconda Prompt 中,运行:

    conda install -c https://conda.anaconda.org/t/token/channel packagename
    

    要使用令牌和标签名称从频道安装软件包:

    conda install -c https://conda.anaconda.org/t/token/channel/label/labelname packagename
    
  4. 私有 PyPI 包也可以安装在 Web UI 中:

    https://pypi.anaconda.org/t/token/channel
    

带登录的私有包

向已登录的用户提供您的私人包:

  1. 创建一个组织
  2. 在该组织中创建一个组,该组可能是只读组。
  3. 将要授予访问权限的用户添加到组中。
  4. 将包上传到组织,或将现有包转移到组织。

在您授予他们访问权限后,其他用户可以使用 Web UI 或客户端下载并安装您的软件包。

要下载软件包:

  1. 在浏览器中,导航到所需的频道。

  2. 如果组织名称是OrgName并且包名称是 conda-package,请在终端窗口或 Anaconda Prompt 中使用这些命令:

    conda install anaconda-client
    anaconda login
    conda install -c OrgName conda-package
    

    或者改为:

    conda install anaconda-client
    anaconda login
    conda install -c https://conda.anaconda.org/OrgName conda-package
    

删除以前版本的包

要从 Anaconda.org 中删除某个软件包的先前版本:

  1. 选择包名称。
  2. 选择文件选项卡。
  3. 选中要删除的版本左侧的复选框。
  4. 操作菜单中,选择删除。

您可以改为使用终端窗口或 Anaconda Prompt:

  1. 跑步:

    anaconda remove USERNAME/PACKAGENAME/0.2
    

    笔记

    替换USERNAME为您的用户名、PACKAGENAME包名和0.2所需的版本。

  2. 您现在可以在您的个人资料页面上看到更改:

    https://anaconda.org/USERNAME/PACKAGE
    

将协作者添加到包中

您可以添加不属于组织的其他用户来协作处理您的包。您将需要其他用户的用户名。

  1. 从您的仪表板中,通过单击其名称来选择包。
  2. 要显示包设置,请选择设置选项。
  3. 要显示当前协作者,请选择协作者选项。
  4. 键入要添加为协作者的人员的用户名,然后单击添加按钮。

笔记

所有协作者都被授予对该包的完全读/写权限,甚至是私有包。

从包中删除协作者

要撤销先前授予协作者的包访问权限:

  1. 从您的仪表板中,通过单击其名称来选择包。
  2. 要显示包设置,请选择设置选项。
  3. 要显示当前协作者,请选择协作者选项。
  4. 单击协作者旁边的红色 X 按钮可撤销其访问权限。

将包裹转让给新的所有者

默认情况下,当您创建或添加包时,它们会附加到您的个人配置文件中。您可以将所有权转让给您控制的另一个所有者帐户,例如您管理的组织资料。

要将包裹转让给新所有者:

  1. 从您的仪表板(或您管理的组织的仪表板)中,选择要为其转让所有权的包。

    系统会显示该包的选项。

  2. 要显示包设置,请选择设置选项。

  3. 选择管理员选项。

  4. 在“将此包转让给新所有者”下,单击“转让”按钮。

  5. 选择新所有者的组织名称。

  6. 单击转移所有权按钮。

复制包

要将包从频道复制conda-forge到个人频道,例如jsmith

anaconda copy conda-forge/glueviz/0.10.4 --to-owner jsmith

conda-forge/glueviz/0.10.4是一个“规范”,可以匹配两种格式之一: user/package/versionuser/package/version/filename.

以前标签被称为“通道”,该命令已弃用选项,并希望对标签进行操作。不应使用这些已弃用的选项。如果您尝试运行,您将收到一个错误消息。anaconda copyfrom-channelto-channelanaconda copy --from-channel conda-forge --to-channel jsmith gluevizLabel conda-forge does not exist

删除包

要从 Anaconda.org 中删除包,包括其所有版本:

  1. 选择包名称。
  2. 选择设置选项。
  3. 在左侧边栏中,选择“管理员”。
  4. 单击删除。

您可以改为使用终端窗口或 Anaconda Prompt:

  1. 跑步:

    anaconda remove USERNAME/PACKAGENAME
    
  2. 您现在可以在您的个人资料页面上看到更改:

    https://anaconda.org/USERNAME