美文网首页
conda与pip兼容性

conda与pip兼容性

作者: 与狼共舞666 | 来源:发表于2022-04-30 18:41 被阅读0次

    最新的一组主要的 Conda 改进在这里,版本 4.6。此版本已经酝酿了一段时间,并且有要显示的功能列表。让我们来看看一些主要的。

    激活脚本初始化

    Conda 4.4 引入了新的脚本,使跨操作系统的激活行为统一。你曾经在 unix 上有“source activate envname”,而在 windows 上只是“activate envname”,Conda 4.4 允许“conda activate envname”。问题是设置你的 shell 来使用这个新特性并不总是那么简单。Conda 4.6 增加了广泛的初始化支持,因此比以往更多的 shell 可以使用新的“conda activate”命令。有关更多信息,请阅读“conda init --help”的输出 我们对这种新的工作方式感到特别兴奋,因为无需修改 PATH 可以使 Conda 对系统上其他软件的破坏性大大降低。

    支持更多的shell

    Conda 的问题跟踪器目前在问题 8000 左右。Conda 4.6.0 终于解决了问题第626章通过添加对PowerShell的支持!我们长期以来一直希望获得这种支持,我们很高兴正式支持PowerShell。除了PowerShell之外,新的“conda init”功能有助于让 Conda 在各种 shell(bash、zsh、csh、fish、xonsh 等)上更快地工作,并且减少中断。

    提高与 pip 的互操作性

    Conda 和 pip 历来难以相处。Pip 不尊重 Conda 的环境限制,而 Conda 非常乐意破坏 pip 安装的软件。一团糟。Conda 4.6.0 添加了预览支持以实现更好的互操作性。有了这种互操作性,Conda 可以使用 pip 安装的包来满足依赖关系,甚至可以干净地删除 pip 安装的软件,并在适当的时候用 Conda 包替换它们。在 pip 和 Conda 成为 hunky-dory BFF 之前仍有改进的空间,但我们希望这是一个好的开始。现在默认禁用此功能,因为它会显着影响 Conda 的性能。如果你想尝试一下,你可以设置这个 condarc 设置:

    <span>conda config --set pip_interop_enabled True</span>
    

    我们将继续努力提高此功能的性能,并开发更多功能以改善在同一空间中使用 Conda 和 pip 的整体体验。即使没有激活此功能,Conda 也能更智能地理解 pip 元数据。例如,如果我们使用 Conda 创建一个 env:<pre class="language-python"><code><span>conda create -y -n some_pip_test python=3.7 imagesize=1.0</span></code></ pre> 然后我们使用 pip 更新该环境中的图像大小: <pre class="language-python"><code><span>conda activate some_pip_test</span> <span>pip install -U imagesize</span></code ></pre> Conda 4.5.12 对“conda list”中的确切内容显示出令人困惑的歧义:

    <span>imagesize 1.1.0 </span> <span>imagesize 1.0.0 py37_0</span>
    

    Conda 4.6 现在只显示一个 imagesize 条目(较新的 pip 条目):<pre class="language-python"><code><span>imagesize 1.1.0 pypi_0 pypi</span></code></pre>

    速度

    随着包生态系统规模的扩大,Conda 感觉越来越慢。我们在 Conda 4.6 中做了几件事来提高 Conda 的速度。您可以在以下位置查看我们的基准测试结果https://conda.github.io/conda-benchmarks/看看我们是如何随着时间的推移而进步的。还有更多工作要做,但我们希望您会注意到事情进展得更快。我们将很快发布后续博客,介绍我们如何实现最近的一些加速。一项新的实验性功能是交换求解器实现的能力。要试用 cryptominisat 求解器,您可以执行以下步骤:

    <span>conda install pycryptosat</span> <span>conda config --set sat_solver pycryptosat</span>
    

    这是在 linux-64 系统上使用不同求解器实现的简单基准:

    <span>time conda create --dry-run -n conda_forge_r -c conda-forge r-essentials</span>
    

    | Pycosat 0.6.3 | Pycryptosat 5.6.6 |
    | 147 秒 | 112 秒 |

    请试一试,让我们知道它是如何为您工作的。如果您遇到错误,请在 github 问题跟踪器上提交问题 (https://github.com/conda/conda/issues),请加入我们的 gitter (https://gitter.im/conda/conda) 以获得荣誉或更一般的讨论。在 Conda 4.6 系列加速的同时,conda-forge 社区一直在探索减少 Conda 求解器需要查看的问题规模的方法。有一个非常有前途的项目 conda-metachannel,Marius van Niekerk 在一篇博文中对此进行了描述:https://medium.com/@marius.v.niekerk/conda-metachannel-f962241c9437. 如果您在更新到最新的 Conda 后仍对求解时间感到沮丧,请查看 Marius 的博客文章。

    还有更多

    这些是 4.6 版本的主要亮点。有关其他功能和修复的更多信息,包括“conda run”、环境堆叠、基准测试以及上述改进的链接,请查看更新日志:https://github.com/conda/conda/releases/tag/4.6.0. 因为我们在早期发布计划中发现了 4.6.0 版本的一些问题(康达金丝雀频道),4.6.0 包实际上是不可用的。第一个正式的 Conda 版本是 4.6.1,它的发行说明位于https://github.com/conda/conda/releases/tag/4.6.1.

    相关文章

      网友评论

          本文标题:conda与pip兼容性

          本文链接:https://www.haomeiwen.com/subject/kjbyyrtx.html