管理您托管的包#

向包添加协作者#

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

  1. 从您的仪表板中选择包。

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

  3. 要显示当前的协作者,请选择Collaborators选项。

  4. 输入您想要添加为协作者的用户名,然后点击添加

注意

所有协作者都被授予对包的完全读写权限,即使是私有包

从包中移除协作者#

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

  1. 从您的仪表板中选择包。

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

  3. 要显示当前的协作者,请选择Collaborators选项。

  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 copy 命令中的 from-channelto-channel 已被弃用。如果您尝试运行 anaconda copy --from-channel conda-forge --to-channel jsmith glueviz,您将收到一个错误,提示 Label conda-forge does not exist

注意

如果用户 jsmith 已经存在包 glueviz/0.10.4,您将收到以下错误信息:File conflict while copying!。如果您仍然想要复制该包,请尝试在命令前添加以下标志之一:

  • --replace - 允许你覆盖已经存在的包

  • --update - 允许您向现有包添加缺失的元数据

移除包的先前版本#

要从Anaconda.org中删除您的一个包的先前版本:

  1. 选择包名称。

  2. 导航到文件标签。

  3. 选择要删除版本左侧的复选框。

  4. 操作菜单中,选择移除

要使用Anaconda Prompt(在macOS/Linux上是Terminal)删除您的一个包的旧版本,请运行:

# Replace <USERNAME> with your username
# Replace <PACKAGE> with the package name
# Replace <VERSION_NUMBER> with the desired version
anaconda remove <USERNAME>/<PACKAGE>/<VERSION_NUMBER>

你现在可以在你的个人资料页面上看到变化,网址为 http://anaconda.org//,其中 是你的用户名, 是包名。

隐藏包安装说明#

在您将包上传到账户或组织后,您可以控制包下载页面上显示的安装说明。安装说明会根据包的标签或包类型(conda 或标准 Python)而有所不同。

要编辑您的软件包安装说明的可见性:

  1. 点击编辑

  2. 选择您想要隐藏的指令的复选框。您还可以选择任何组最右侧的复选框以隐藏所有指令。

  3. 点击保存更改

删除一个包#

要从Anaconda.org删除一个包及其所有版本:

  1. 选择包名称。

  2. 选择设置选项。

  3. 选择管理员选项。

  4. 点击删除

要使用Anaconda Prompt(在macOS/Linux上是Terminal)删除一个包及其所有版本,请运行:

# Replace <USERNAME> with your username
# Replace <PACKAGE> with the package name
anaconda remove <USERNAME>/<PACKAGE>

你现在可以在你的个人资料页面上看到变化,网址是 http://anaconda.org/,其中 是你的用户名。

更新包元数据#

您的包中的meta.yaml文件提供的大部分元数据会显示在您的包的下载页面上。这些信息包括您的包的许可证、描述、Git仓库URL和文档URL。有关conda-build的meta.yaml文件中通常包含的内容的更多信息,请参阅conda-build文档

Anaconda 客户端会自动更新您上传的包中 meta.yaml 文件中定义的元数据,只要该包的版本号之前从未上传过。要在不需要新包版本的情况下更新元数据,请使用 --force-metadata-update

anaconda upload /your/path/conda-package.tar.bz2 --force-metadata-update

使用.conda压缩格式#

目前,当您使用 conda build 创建包时,这些包会被压缩成 .tar.bz2 格式。这种格式自 conda 诞生以来一直在使用,与现代压缩格式相比已经变得非常慢。考虑到这一点,创建了 .conda 压缩格式。有关 .conda 的更多详细信息,请参阅 Conda 包理解和改进 Conda 的性能 博客文章中的 下载和提取包 部分。

关于.conda格式,最重要的是要理解它通过将包的元数据压缩到与包内容分开的自己的tarball文件中,从而允许更快地访问包的元数据。

要了解.conda格式如何显著提高包提取速度,请尝试以下操作:

#Install the conda-package-handling package
conda install conda-package-handling

#Transmute a .tar.bz2 package format into a .conda format
#cph transmute IN_FILE(file to convert) OUT_EXT(extension to convert to, i.e. .conda)
cph transmute mkl-2018.0.3-1.tar.bz2 .conda

#Test the speed of extracting the .tar.bz2 file versus the .conda file
$ time cph extract mkl-2018.0.3-1.tar.bz2 --dest mkl-a
cph extract mkl-2018.0.3-1.tar.bz2 --dest mkl-a  18.16s user 0.59s system 98% cpu 19.015 total
$ time cph extract mkl-2018.0.3-1.conda --dest mkl-b
cph extract mkl-2018.0.3-1.conda --dest mkl-b  1.41s user 0.65s system 87% cpu 2.365 total

正如你所看到的,.conda 文件的提取速度几乎比 .tar.bz2 文件快一个数量级。

.conda 文件可以使用 anaconda upload 上传到 Anaconda.org,就像任何 .tar.bz2 文件一样。当前创建 .conda 包的工作流程是使用 conda build 构建它们,然后使用 cph transmute.tar.bz2 文件转换为 .conda 文件,然后按照 上传 conda 包 部分中的描述正常上传它们。