Python 安装包后未解决Conda冲突
我正在尝试安装一个名为的程序包,它是来自所有者的Conda程序包。该包具有依赖项,当我在其上运行Python 安装包后未解决Conda冲突,python,anaconda,conda,Python,Anaconda,Conda,我正在尝试安装一个名为的程序包,它是来自所有者的Conda程序包。该包具有依赖项,当我在其上运行conda install时,会导致此错误(我当前的conda环境运行的是Python 3.7.4): 然后,我再次尝试安装该软件包,并得到了与以前相同的错误。我不明白这是怎么可能的,因为您可以看到我现在已经安装了,例如,zlib,tk,xz。我不确定如何正确解决这些冲突,因为在安装了适当的包/版本后,它似乎没有帮助 谢谢你的帮助 可疑原因 从构建ID判断,您使用的是osx-64平台。对于所有的osx
conda install
时,会导致此错误(我当前的conda环境运行的是Python 3.7.4):
然后,我再次尝试安装该软件包,并得到了与以前相同的错误。我不明白这是怎么可能的,因为您可以看到我现在已经安装了,例如,zlib
,tk
,xz
。我不确定如何正确解决这些冲突,因为在安装了适当的包/版本后,它似乎没有帮助
谢谢你的帮助 可疑原因
从构建ID判断,您使用的是osx-64平台。对于所有的osx-64版本,SymTopo的依赖性要求看起来很奇怪,特别是,它们需要pymatgen=2019.4.11.*
,而搜索Anaconda Cloud根本不存在。然而,在linux-64版本中,这个要求是pymatgen>=2019.4.11
,因此我认为作者做得不正确,因此您无法解析一致的包配置
可能的解决办法 除了联系作者并要求他们发布一些工作版本外,我认为您有两种可能的行动方案:
pymatgen=2019.4.11.*
实际上应该是pymatgen>=2019.4.11
然后您可以安装所有的prereq(请参阅下一节中的YAML),然后使用
conda install -n my_env --no-deps materiae::symtopo
这可能值得一试,但Conda帮助(Conda install-h
)明确警告说,这样做没有任何保证
使用PyPI构建
另一种解决方法是,尽管这是一个相对实验性的特性。该战略将是:
name: symtopo_env
channels:
- conda-forge
- defaults
dependencies:
- python=3.7
- h5py=2.9.0
- phonopy=2.1.3
- pip
- pip:
- abipy==0.6.0
- pymatgen==2019.4.11
命令如下:
conda env create -f symtopo-prereqs.yaml
conda activate symtopo_env
conda config --env --set pip_interop_enabled true
conda install materiae::symtopo
同样,我认为这个env非常脆弱(),并避免再安装它
注意,我发现使用推荐频道的
abipy
会导致冲突,所以我选择只使用PyPI版本。不幸的是,这导致PyPI提供了很多软件包,但它确实安装了所有软件。这太棒了,非常感谢。我得出的结论是,原作者做了一些不正确的事情,由于没有公共GitHub,因此没有地方发布这篇文章。似乎PyPI是迄今为止最可靠的方法,但也会将其发送给作者,希望在将来的更新中进行清理。非常感谢您的帮助,现在就尝试一下!安装效果很好(应用程序的实际稳定性还有待观察,但这会让我启动并运行起来)。谢谢你的帮助@MillerMedia很乐意帮忙!我的另一个想法是,也许那些较旧版本的pymatgen是从Anaconda Cloud中提取出来的,所以这可能不完全是作者的错。这是有道理的。实际上,我将联系他们,看看我是否能帮助他们在技术方面保持这一点,因此这是一个非常有用的起点(我将引导他们找到您的答案,以及上下文)。谢谢
name: symtopo_env
channels:
- conda-forge
- defaults
dependencies:
- python=3.7
- h5py=2.9.0
- phonopy=2.1.3
- pip
- pip:
- abipy==0.6.0
- pymatgen==2019.4.11
conda env create -f symtopo-prereqs.yaml
conda activate symtopo_env
conda config --env --set pip_interop_enabled true
conda install materiae::symtopo