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

时间:2017-05-06 23:16:39

标签: python conda

我试图为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 个答案:

答案 0 :(得分:1)

我想出来了。感谢所有花时间查看我的问题的人。真的没有人能够为我解决这个问题,因为它对我正在安装的软件包非常具体。我会尝试总结一下我学到的东西,以防其他人遇到任何不同的东西。

  1. 首先,正如我在其中一条评论中所述,如果您在构建下指定特定版本要求,则最好在运行时指定相同的版本要求。最初我有" python 3.6。*"在build下指定,但只是" python"在奔跑。这导致包被命名为以" -py27_0"结尾的东西,因为包名称可以理解地取决于运行所需的内容,而不是构建它
  2. 真正棘手的事情是要了解在我运行" python setup.py install"时自动安装的setup.py脚本中指定了其他要求。手动,但当我尝试在conda下构建时,正在运行。一旦我将这些要求添加到meta.yaml配方中,一切都可以构建和测试。
  3. 因此,课程应与构建和运行之间的conda要求保持一致,并确保列出所有要求,包括可在setup.py中指定的 bonus 要求文件。

    再次感谢所有看过这个的人。