使用 Anaconda 存储库 (AER 2.27) ¶
安装 anaconda-client ¶
注意:Anaconda Client 不是搜索和下载软件包所必需的。
Anaconda 客户端命令行界面 (CLI) 在终端窗口中用于构建和上传包、从终端窗口连接和管理您的 Anaconda 存储库帐户、上传您创建的包以及生成访问令牌以管理对私有包的访问.
此工具可以通过三种方式安装:使用 conda、使用 PIP 或使用来自源代码的 PIP。我们建议使用 conda。
选项 1,畅达:
conda 安装 anaconda 客户端
选项 2,画中画:
pip 安装 anaconda 客户端
选项 3,使用 pip 从源安装:
pip 安装 git+https://github.com/Anaconda-Server/anaconda-client
安装后,使用以下命令查看 CLI 任务的完整列表:
蟒蛇 - ^ h
包¶
上传到 Anaconda Repository 的所有文件都存储在包中。每个 Anaconda Repository 包都在其自己的唯一 URL 处可见,具体取决于拥有包的用户的名称和包的名称。
例如,如果用户“travis”上传了一个名为“testpkg”的测试包,它将在
https://<your-anaconda-repo>/travis/testpkg.
这些 Anaconda Repository 包可能包含多个文件,这些文件可能是逗号分隔值 (CSV)、制表符分隔值 (TSV) 或文本 (TXT) 等数据文件,也可能是 conda 包、PyPI 包或R 包。
用户可以创建一个 Anaconda Repository 包,然后将文件上传到其中。
命名空间¶
每个用户和组织都有自己的位置,称为用户命名空间,他们可以在其中托管包。您可以通过导航到用户或组织的用户页面来查看用户或组织命名空间中的公共包。
示例:位于 的 travis 用户命名空间https://<your-anaconda-repo>/travis包含由帐户名为 Travis 的用户上传和共享的包。
注意:如果由免费帐户的用户上传,所有软件包都是公开的。通过升级到付费帐户,可以将包指定为私有。
Anaconda Repository 支持两个包管理器 conda和 PyPI。要使用 conda 或 PyPI 包,您必须使用它们相应的子域:
- 要从用户 travis安装conda包,请使用存储库 url
https://conda.<your-anaconda-repo>/travis - 要从用户 travis安装pypi包,请使用存储库 url
https://pypi.<your-anaconda-repo>/travis
标签¶
标签的使用允许包作者上传文件用于开发或测试目的,而不会影响非开发用户。
包中的每个文件都可以用一个或多个标签进行标记,或者根本不标记以接受默认标签。
默认标签是main,所以没有指定标签上传的包会自动标记为“main”。
默认情况下也会下载标有 main 的版本,除非用户指定了不同的标签。因此,如果文件被标记为main,那么 URL 中可能会省略标签名称。例如,以下存储库是等效的:
https://<your-anaconda-repo>/sean/label/mainhttps://<your-anaconda-repo>/sean
诸如可以与通道一起使用或与通道和标签一起使用的命令:conda install
conda install —-channel sean selenium
conda install —-channel sean/label/dev selenium
conda install —-channel sean/label/stable selenium
Conda包¶
上传¶
此示例显示如何使用 conda build 构建conda包并将其上传 到 Anaconda 存储库。
在开始之前,安装 Anaconda 客户端和 conda build:
conda 安装 anaconda-client conda-build
现在选择您要为其构建包的存储库。在这个例子中,我们将使用一个简单的公共conda 测试包:
git 克隆 https://github.com/Anaconda-Server/anaconda-client
cd anaconda-client/example-packages/conda/
在这个目录中,我们可以看到两个必需的文件: meta.yaml 和 build.sh (适用于 Linux 或 Mac)或 bld.bat(适用于 Windows)。
要构建包,请关闭自动 anaconda-client 上传,然后运行 conda build 命令:
conda 配置 --set anaconda_upload 没有
Conda构建。
以这种方式构建的所有包都放在Anaconda 的 conda-bld
目录的子目录中
。您可以使用以下--output选项检查结果文件的放置位置
:
Conda构建。 - 输出
现在使用anaconda upload命令将测试包上传到 Anaconda Repository :
蟒蛇登录
anaconda 上传 /path/to/conda-package.tar.bz2
您可能还希望阅读文章构建 conda 包和 conda 构建教程,以获取有关 conda 整体构建框架的更多信息。
安装¶
通过向 conda 配置添加通道,从 Anaconda Repository 安装 conda 包。
Conda 知道如何与 Anaconda Repository 交互。指定通道
sean转换为
https://<your-anaconda-repo>/sean:
conda 配置--添加频道肖恩
现在您可以从 sean 的 Anaconda Repository 帐户安装公共 conda 包。尝试在以下位置安装 testci 包https://<your-anaconda-repo>/sean/testci:
conda 安装 testci
PyPI 包¶
上传 PyPI 包¶
我们可以使用保存在anaconda-client 存储库中的一个小的公共示例包来测试 PyPI 包的上传。
首先从命令行克隆存储库:
git clone git@github.com:Anaconda-Server/conda-server.git
cd conda-server/example-packages/pypi/
现在您可以使用setup.py脚本创建您的 PyPI 包:
python setup.py sdist
该包现已构建为源 tarball 并准备上传:
anaconda 上传 dist/*.tar.gz
您的包裹现在可在
http://<your-anaconda-repo>/USERNAME/PACKAGE。
安装 PyPI 包¶
安装 PyPI 包的最佳方法是使用 pip。对于以下内容,我们将使用我们在上面的示例中编写的包:
pip install --extra-index-url https://pypi.<your-anaconda-repo>/USERNAME/simple pypi-test-package
安装私有 PyPI 包¶
管理访问权限或将 PyPI 和其他包设为私有的最佳方法是创建 Organizations或Groups,这允许您为每个包、笔记本或环境设置单独的权限。
您还可以使用令牌系统控制访问。
所有 Anaconda Repository url 都可以使用前缀/t/$TOKEN来访问私有包:
TOKEN=$(anaconda auth --create --name 你的令牌名)
pip install --index-url https://pypi.<your-anaconda-repo>/t/$TOKEN/USERNAME/simple test-package
注意:将 YOUR-TOKEN-NAME 替换为令牌的名称,并将 $TOKEN 替换为创建令牌时生成的实际随机字符串。
上传包¶
要将包文件上传到 Anaconda Repository,请使用 anaconda-client命令行界面和 upload命令:
蟒蛇登录
anaconda 上传 PACKAGENAME
Anaconda Repository 会自动检测包和笔记本、包或笔记本类型及其版本。
您的包裹现在可在以下位置获得:
https://<your-anaconda-repo>/<USERNAME>/<PACKAGENAME>
任何人都可以使用 Anaconda CLI 下载您的软件包:
anaconda 下载用户名/包名
私人包¶
默认情况下,任何有权访问存储库的人都可以访问上传到 Anaconda 存储库的所有包、笔记本和环境。
上传到您在 Anaconda Repository 上的用户频道的包可以通过 Web UI 标记为私有,方法是选择包,单击“设置”选项卡,然后单击侧栏中的“管理”。
或者,您可以使用以下 URL 访问此页面:
https://<your-anaconda-repo>/<username>/<package>/settings/admin
注意:Jupyter Notebooks 和 conda 环境也可以使用此过程和 URL 标记为私有。
其他 Anaconda Repository 用户可以使用令牌或登录来访问您的私人包。
带有令牌的私有包¶
要使您的私有包可通过令牌访问,首先创建一个访问令牌,其中包括 Anaconda 客户端 CLI 的以下范围:
畅达:下载
或在您的网络浏览器中使用:
允许从 Conda 存储库进行私人下载
令牌是一个随机的字母数字字符串,用于安装软件包或添加您希望从中安装私有软件包的频道。
使用提供的令牌可以将用户的频道添加到配置中:
conda 配置 --add 频道 https://conda.<your-anaconda-repo>/t/<token>/<channel>
令牌也可用于安装软件包,而无需先添加频道:
conda install -c https://conda.<your-anaconda-repo>/t/<token>/<channel> <package>
也可以使用以下方法安装私有 pypi 包:
https://pypi.<your-anaconda-repo>/t/<token>/<channel>
上传其他类型的文件¶
除了上传包,你还可以上传其他类型的文件到 Anaconda Repository。在此示例中,我们将以逗号分隔值 (CSV) 格式上传名为“baby-names”的电子表格。通过使用这些步骤,可以使用 Anaconda CLI 上传任何类型的文件。首先,我们将在 Anaconda Repository 上创建新包,它将创建一个可以容纳多个文件的命名空间。然后我们将文件上传到这个命名空间。
使用anaconda-client命令行界面为 Anaconda Repository 上的文件创建新的包和命名空间:
蟒蛇登录 anaconda 包 --create USERNAME/baby-names
现在将文件上传到新的命名空间。自动检测 PyPI 包文件、conda 包文件和笔记本文件。其他类型的文件没有自动检测,因此您必须明确指定 'package'、'package-type' 和 'version' 字段。
在这个例子中,用户或组织名称是 travis,包名称是 baby-names,包类型是一个文件,这是我们上传的第一个版本,完整的文件名是 baby-names1.csv:
anaconda 上传 --user travis --package baby-names --package-type 文件 --version 1 baby-names1.csv
下载其他类型的文件¶
您的文件可在
https://<your-anaconda-repo>/<USERNAME>/<babynames>
任何人都可以使用 Anaconda CLI 下载您的文件:
anaconda 下载 USERNAME/baby-names
删除旧版本的包¶
要从 Anaconda 存储库中删除某个软件包的旧版本:
- 单击包名称。
- 单击“文件”选项卡。
- 单击要删除的版本左侧的复选框。
- 单击“操作”菜单,然后单击“删除”。
您可以改为使用命令行界面:
蟒蛇删除 jsmith/testpack/0.2
注意:将jsmith、testpack和替换0.2为您的实际用户名、包名和版本。
现在可以在您的个人资料页面上看到更改:
https://<your-anaconda-repo>/<USERNAME>/<PACKAGE>
将协作者添加到包中¶
您可以添加不属于组织的其他用户来协作处理您的包。您需要知道其他用户的用户名。
- 从您的仪表板中,通过单击名称选择要为其添加协作者的包。
- 单击设置选项以显示包设置。
- 单击协作者选项。
- 输入要添加为协作者的人员的用户名,然后单击添加按钮。
注意:所有协作者都被授予对该包的完全读/写权限,甚至是私有包。
从包中删除协作者¶
要撤销先前授予协作者的包访问权限:
- 从您的仪表板中,通过单击名称选择要为其添加协作者的包。
- 单击设置选项以显示包设置。
- 单击协作者选项以显示当前协作者。
- 单击协作者旁边的红色 X 按钮可撤销其访问权限。
将包裹转让给新的所有者¶
默认情况下,当您创建或添加包时,它们会附加到您的个人配置文件中。您可以将所有权转让给您控制的另一个所有者帐户,例如您管理的组织资料。要将包裹转让给新所有者:
- 从您的仪表板(或您管理的组织的仪表板)中,选择要为其转让所有权的包。系统会显示该包的选项。
- 单击设置选项以显示包设置。
- 单击管理选项。
- 在“将此包转让给新所有者”下,单击“转让”按钮。
- 为新所有者选择组织名称,然后单击转移所有权按钮。
笔记本¶
将Jupyter 笔记本(以前称为 IPython 笔记本)上传到 Anaconda 存储库:
anaconda 上传 my-notebook.ipynb
笔记本的 HTML 版本将位于:
http://notebooks.<your-anaconda-repo>/<USERNAME>/my-notebook
任何人都可以下载它:
anaconda 下载用户名/我的笔记本
环境¶
保存conda 环境并将其上传到 Anaconda Repository:
conda env export -n 我的环境
anaconda 上传我的环境
您上传的环境列表位于:
http://envs.<your-anaconda-repo>/<USERNAME>
任何人都可以从 Anaconda Repository 下载并安装您的环境:
conda env 创建用户/我的环境
源激活我的环境
组织¶
组织使您能够维护组拥有的存储库。
创建组织¶
要创建组织:
- 登录到您的 Anaconda 存储库。
- 从工具下拉菜单中选择组织项并滚动到页面底部。
- 提供组织名称。注意:组织名称不能包含空格或特殊字符。
- 提供电子邮件地址,然后单击创建组织按钮。系统显示新组织的仪表板。
作为组织的创建者和所有者,您具有对该组织以及与该组织关联的任何程序包的自动管理访问权限。
“工具”下拉菜单中的“组成员”页面显示您所属的所有组织的列表。
删除一个组织¶
要删除您管理的组织并清除与其关联的所有数据:
- 从配置文件下拉菜单中选择“切换到”。
- 选择您要删除的组织。
- 从配置文件下拉菜单中选择“设置”。
- 单击“帐户”选项。可能会要求您验证密码。
- 在“删除帐户”部分下,单击“删除”按钮。确认页面将要求您提供组织的全名。
自定义用户和组¶
管理员可以添加、删除或编辑组和用户访问权限。要访问这些功能,首先从配置文件下拉菜单切换到组织配置文件。
从用户视图切换到组织视图后,您可以查看和编辑组织的当前组和用户访问权限,以及在此地址添加新组和用户:
https://<your-anaconda-repo>/<OrgName>/groups/
通过从工具下拉菜单中选择组。
当您将用户添加到组织时,用户将收到仪表板通知。
将包上传到组织¶
要将包上传到组织,请使用以下-u/--user选项:
anaconda 上传 --user ORGANIZATION package.tar.bz2
只有组织的共同所有者可以将包上传到组织。
注意:将 ORGANIZATION 替换为组织的实际名称,将 package.tar.bz2 替换为包的实际名称。
为不同的访问级别创建组¶
在组织内,您可以创建一个组来自定义一组用户的访问权限:
- 单击 + 新建组按钮。为组命名,并分配所需的权限(只读、读写或管理)。
- 在“成员”框中按用户名添加所需成员。
- 在包框中添加该组可以访问的包。
- 单击保存组按钮。
在开发周期中使用标签¶
标签可用于促进开发周期并组织正在开发、测试和生产中的代码。
Anacona Repository 标签允许您将文件上传到您的包并控制它们的访问方式。
使用 Anaconda Repository 标签,您可以将文件上传到特定标签,因此只有将该标签放入他们搜索的 URL 的用户才能安装它。这对于在开发和测试流程中移动包特别有用。
在本例中,我们将向您展示如何使用test标签,以便您可以上传文件而不影响您的生产质量包。如果没有--label参数,默认标签是main。
让我们从 conda 包开始。如果您没有,请使用我们的示例 conda 包。在构建包之前,将meta.yaml文件中的版本编辑
anaconda-client/example-packages/conda/为 2.0。
git 克隆 https://github.com/Anaconda-Server/anaconda-client
cd anaconda-client/example-packages/conda/
vim meta.yaml # 版本升级到 2.0
conda 配置 --set anaconda_upload 没有
Conda构建。
现在,使用anaconda-client upload命令将您的测试包上传到 Anaconda Repository 。
添加该--label选项会告诉 Anaconda Repository 使上传仅对指定该标签的用户可见:
anaconda 上传 /path/to/conda-package-2.0.tar.bz2 --label 测试
您现在会注意到,即使您搜索 conda main,您也不会看到2.0测试包的版本。这是因为您必须告诉 conda 查找您的新test标签。
该--override参数告诉 conda 不要使用~/.condarc文件中的任何通道
。
没有 2.0 结果:
conda search --override -c USERNAME conda-package
你的 2.0 包在这里:
conda search --override -c USERNAME/label/test conda-package
您可以将标签USERNAME/label/test提供给测试人员。一旦他们完成测试,您可能需要将test包裹复制回您的main标签。
您还可以从仪表板管理您的包裹标签:
https://<your-anaconda-repo>/USERNAME/conda-package
anaconda 标签 --copy test main
现在你的 2.0 版是主要的:
conda search --override -c USERNAME conda-package