【问题标题】:Create conda package across many versions跨多个版本创建 conda 包
【发布时间】:2014-05-20 03:06:29
【问题描述】:

我有一个非常简单的 PyPI 上的纯 Python 包,我想在 binstar 上提供它。我的包针对具有单个代码库的 Python 2.6+ 和 3.2+。我还希望它在 Windows 和 Unix 上同样有效。

有没有一种简单的方法来全面构建我的包并将其上传到 binstar 以用于许多 Python 版本?

按照this article 中的建议,我尝试过幼稚地使用conda skeleton pypi。我想在许多不同的版本中复制这个过程。

【问题讨论】:

  • Python 版本还是包版本?

标签: python anaconda conda


【解决方案1】:

如果您想为许多不同版本的软件包构建配方,请使用--version 标志到conda skeleton pypi。我建议使用package-version 作为食谱的命名约定。

如果您想为许多不同的 Python 版本构建相同的包,请使用 --py 标志到 conda build,例如 conda build --py 3.4 recipe。该标志可以指定多次,例如conda build --py 3.3 --py 3.4 recipe,或者您可以使用--py all 针对 Python 2.6、2.7、3.3 和 3.4 进行构建。

要将包转换到其他平台,请使用conda convert(有关用法,请参阅conda convert -h;请务必运行conda update conda-build,因为API 最近发生了一些变化)。

获取 binstar 上传的最简单方法是运行 conda config --set binstar_upload yes。这将导致 conda buildconda convert 在完成后自动将包上传到 binstar。

【讨论】:

  • 在 conda 的未来是否有可能出现神奇的 conda build-all 命令(带有适当的输入指定版本)?
  • 我本来打算添加conda build --all,但由于环境变量被读取和存储为全局状态的方式,结果证明是不平凡的。
  • 可以稍微扩展一下吗?该函数在哪里定义?这是您保存在 conda-recipes 目录中然后使用 $ ./conda-build-all my_python_lib 调用的 shell 脚本吗?
  • @PaulH 此行为现在已内置到 conda 构建中。我会更新答案。
  • conda build --py 3.3 --py 3.4 recipe 还能用吗?尝试时我得到一个 AttributeError,当我使用 py all 时得到一个 ValueError。
猜你喜欢
  • 1970-01-01
  • 2019-11-10
  • 2020-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-27
  • 1970-01-01
相关资源
最近更新 更多