Anaconda 中的依赖项和包冲突?

Posted

技术标签:

【中文标题】Anaconda 中的依赖项和包冲突?【英文标题】:Dependencies and packages conflicts in Anaconda? 【发布时间】:2018-08-28 16:15:15 【问题描述】:

我在 Windows 10 机器上使用 Anaconda 5.1 和 Python 3.6。

我遇到了很多问题;我尝试在我的 conda 环境中添加一些有用的工具,例如 lightGBM、tensorflow、keras、bokeh...,但是一旦我使用过

conda install -c conda-forge packagename

在所有这些方面,我最终都会对不同的软件包进行降级和升级,这些软件包只会干扰我的安装,并且在这些安装之后我无法再使用任何东西。

我想知道是否有可能让多个版本的包和依赖项并存,而这不会杀死我的安装?

对不起,如果我的问题看起来很无聊,感谢您的帮助,

内特

【问题讨论】:

【参考方案1】:

您可以尝试通过将 --no-update-dependencies--no-update-deps 传递给 conda install 命令来禁用传递 deps 更新。前任: conda install --no-update-deps pandas

【讨论】:

问题是不同的包有时需要不同的依赖,所以我不能不更新它们。他们似乎无法在同一个环境中都表现得很好,说实话,这让我发疯了。 +1 用tensorflowjupyter 解决了我的问题。出于某种原因,在 conda 环境中安装 tensorflow 后,我无法安装任何其他软件包 - 它会迫使我卸载它。这移动了不可移动的对象!【参考方案2】:

好吧,通过四处搜索,我能够启动并运行所有东西,而且它似乎不再冲突,我不得不卸载 Anaconda,重新启动计算机,然后在我的安装被破坏后重新安装它。

只要软件包和依赖项没有相互混淆,我就可以在常规(基本)环境中安装 lightgbm、folium 和 catboost 并使用它们。除了我链接的 catboost 之外,这些都是直接使用conda install -c conda-forge packagename 安装的。不要忘记检查可能会影响您的系统的 conda、python 和 pip (wheel) 的不同版本。

另外,安装了conda install nb_conda 以便能够立即在 Jupyter 笔记本中选择不同的环境。

我是从 this helpful post and a mix of the answers below 那里得到的。

然后,当我想安装 Tensorflow、Keras、theano 时,对我有用的是第二条评论 in this thread 中的说明,尽管你不应该忘记在你创建的激活的新环境中再次安装 jupyter。

之后,关闭所有内容,重新启动所有内容,然后在 Jupyter 的右上角,您应该能够选择不同的环境并从那里开始工作。

我希望这将帮助其他处于同样困境的人。

【讨论】:

"我不得不..." 抱歉,但这个答案缺乏支持该结论的证据。如此多的东西被改变了,而且以一种非系统的方式改变了,以至于人们无法确定究竟是什么产生了影响。 nb_conda 包是一个顽固的神话(只需要nb_conda_kernels),Jupyter 只需安装在一个位置(请参阅this answer)。我不鼓励用户遵循此处给出的建议。【参考方案3】:

我试图安装 pyrobuf 库,但它显示了很多冲突。对我有用的是

conda update --prefix /Users/<your_username>/opt/anaconda3 anaconda

【讨论】:

【参考方案4】:

您可以尝试使用不同的 conda 环境。例如:

conda create -n myenv

然后您可以通过以下方式激活您的环境:

conda activate myenv

并通过以下方式停用:

conda deactivate

【讨论】:

以上是关于Anaconda 中的依赖项和包冲突?的主要内容,如果未能解决你的问题,请参考以下文章

完美解决Python与anaconda之间的冲突问题

Mac 升级Python遇到Anaconda的冲突解决,以及pip/virtualenv升级

Maven依赖jar包版本冲突解决方案

终极方案:快速解决Android项目依赖冲突

如何删除maven中冲突的jar包

如何解决包冲突问题