如果我在 python 3.6.1 下构建,为什么 conda build 将 py27_0 附加到我的包名称?

Why is conda build appending py27_0 to my package name if I'm building under python 3.6.1?

我正在尝试为 ProjectQ 制作 conda 配方。在 linux 和 osx 下的构建过程中发生了一些奇怪的事情。我可以手动构建和安装包(即使用克隆的 git repo 目录中的 'python setup.py install')。然而,当我制作一个完全相同的食谱时,它失败了。 linux 和 osx.

我的构建方法是 here。特别奇怪的是,即使我在 meta.yaml 文件中的构建要求下指定 python 3.6.*,conda-build 过程将包命名为 "projectq-v0.3.0-py27_0",并且当它安装包,它会尝试在 python 2.7 目录之一中执行此操作,我认为这是导致它失败的原因。

很明显我在做一些愚蠢的事情,但我终究无法弄清楚是什么。谁能看到我做错了什么?提前致谢。

我想通了。感谢所有花时间查看我的问题的人。真的没有任何人可以为我解决这个问题,因为它对我正在安装的包来说是相当特定的。我将尝试总结我所学的内容,以防其他人 运行 陷入任何不同的境地。

  1. 首先,正如我在其中一条评论中指出的那样,如果您在构建下指定特定的版本要求,则最好在 运行 下指定相同的版本要求。最初我在构建下指定了 "python 3.6.*",但在 运行 下只指定了 "python"。这导致包被命名为以“-py27_0”结尾的东西,因为可以理解,包名称取决于 运行 它所需的内容,而不是构建它。
  2. 真正棘手的事情是理解 setup.py 脚本中指定的额外要求,当我手动 运行 "python setup.py install" 时自动安装,但是 [=当我尝试在 conda 下构建时,17=]not 是 运行。一旦我将这些要求添加到 meta.yaml 配方中,一切都会正常构建和测试。

因此,课程要与构建和 运行 之间的 conda 要求保持一致,并确保列出所有要求,包括 bonus 要求可以在 setup.py 文件中指定。

再次感谢所有看过这篇文章的人。