通过 conda-forge / conda-install 指定所选默认版本的 conda 包
Specify a chosen default version of conda package through conda-forge / conda-install
我想通过 conda 分发一个包的多个版本。具体来说,我想做这样的事情:
...
package-v1.2-dev
package-v1.2
package-v1.1-dev
package-v1.1
package-v1.0
诀窍是我想让“最新”或默认包成为没有 -dev
的发行版本。据我了解,没有版本号的 conda install <package>
将安装最新版本。在我的例子中,那将永远是 -dev
。是否可以将默认设置为特定版本号?
您可以通过为 dev
包指定自定义“标签”来实现此目的。继续为您的发布包使用默认的 main
标签,但为其他包使用非主标签(例如 dev
)。
首先,关于版本号的快速说明:conda 包版本 must not contain the -
character,因此 v1.2-dev
不是有效版本。对于以下示例,我将使用 v1.2.dev
.
上传包的方法如下:
anaconda upload mypackage-v1.2.tar.bz2
anaconda upload --labels dev mypackage-v1.2.dev.tar.bz2
(您还可以通过您在 http://anaconda.org 网站上的帐户操作现有包裹的标签。)
默认情况下,您的用户只会下载您的主要包。想要 dev
包的用户将有两个选择:
他们可以在命令行指定dev
标签:
conda install -c mychannel/label/dev mypackage
或
他们可以将您的 dev
标签添加到他们的 .condarc
配置中
# .condarc
channels:
- mychannel/label/dev # dev label
- mychannel # main label only
- conda-forge
- defaults
然后就不需要在命令行上指定频道了:
conda install mypackage
PS -- 这是关于您在上面写的内容的附注:
As I understand it, conda install <package>
without a version number will install the newest build
澄清一下,它不会安装按时间顺序排列的“最新”版本,而是根据 conda's VersionOrder
logic. That logic is designed to be largely compatible with relevant Python conventions (e.g. PEP440 和其他人)安装的最高兼容版本,但具有与其他语言约定兼容的一些功能,也是。
请注意: 就 conda(和 PEP440)而言,1.2.dev
在 1.2
之前。 (也许你已经知道了,但我认为这并不明显。)
$ python
>>> from conda.models.version import VersionOrder
>>> VersionOrder('1.2.dev') < VersionOrder('1.2')
True
我想通过 conda 分发一个包的多个版本。具体来说,我想做这样的事情:
...
package-v1.2-dev
package-v1.2
package-v1.1-dev
package-v1.1
package-v1.0
诀窍是我想让“最新”或默认包成为没有 -dev
的发行版本。据我了解,没有版本号的 conda install <package>
将安装最新版本。在我的例子中,那将永远是 -dev
。是否可以将默认设置为特定版本号?
您可以通过为 dev
包指定自定义“标签”来实现此目的。继续为您的发布包使用默认的 main
标签,但为其他包使用非主标签(例如 dev
)。
首先,关于版本号的快速说明:conda 包版本 must not contain the -
character,因此 v1.2-dev
不是有效版本。对于以下示例,我将使用 v1.2.dev
.
上传包的方法如下:
anaconda upload mypackage-v1.2.tar.bz2
anaconda upload --labels dev mypackage-v1.2.dev.tar.bz2
(您还可以通过您在 http://anaconda.org 网站上的帐户操作现有包裹的标签。)
默认情况下,您的用户只会下载您的主要包。想要 dev
包的用户将有两个选择:
他们可以在命令行指定
dev
标签:conda install -c mychannel/label/dev mypackage
或
他们可以将您的
dev
标签添加到他们的.condarc
配置中# .condarc channels: - mychannel/label/dev # dev label - mychannel # main label only - conda-forge - defaults
然后就不需要在命令行上指定频道了:
conda install mypackage
PS -- 这是关于您在上面写的内容的附注:
As I understand it,
conda install <package>
without a version number will install the newest build
澄清一下,它不会安装按时间顺序排列的“最新”版本,而是根据 conda's VersionOrder
logic. That logic is designed to be largely compatible with relevant Python conventions (e.g. PEP440 和其他人)安装的最高兼容版本,但具有与其他语言约定兼容的一些功能,也是。
请注意: 就 conda(和 PEP440)而言,1.2.dev
在 1.2
之前。 (也许你已经知道了,但我认为这并不明显。)
$ python
>>> from conda.models.version import VersionOrder
>>> VersionOrder('1.2.dev') < VersionOrder('1.2')
True