• Anaconda channel 配置笔记


    本文总结了Anaconda channel的配置,适用于Windows/MacOS/Linux等操作系统。

    conda channel的配置

    默认的conda channel是defaults,但这个channel的代码包不全。我的建议使用conda-forge channel,并设置严格优先使用conda-forge,因为这不同channel的包不完全兼容。我之前通过conda-forge channel安装geopandas时候,由于没有设置严格优先使用conda-forge,conda使用了defaults channel安装了libgdal(这是geopandas的依赖包之一),导致geopandas的安装一直不成功。

    conda-forge的优势是什么?这个channel有强大的社区支持,提供了大多数安装包,并且更新及时。网址是:

    https://conda-forge.org/docs/index.html

    如何添加conda-forge channel并设置优先级?

     

    1. 创建.condarc文件。这是conda channel的配置文件,在安装conda之后并不会生成这个文件。在terminal中使用conda config指令可以创建该文件

    conda config

    2. 查看现在的channel状态和优先级

    conda config --get channels

    3. 添加conda-forge channel并设置为最高优先级

    conda config --add channels conda-forge

    4. 再次查看channel状态和优先级

    conda config --get channels
    # it should be the following:
    # --add channels 'defaults'   # lowest priority
    # --add channels 'conda-forge'   # highest priority

    5. 激活某个环境,在环境中设置channel的严格优先。注,如果该环境中已经安装了若干库,则需要先更新所有的库以保证大多数库从conda-forge下载,以保持库的一致性。

    # activate my environment
    conda activate my_env
    # update all packages if needed
    conda update --all
    # set channel priority as strict
    conda config --set channel_priority strict

    如果在执行set channel_priority strict之后,conda提示某些库不一致(inconsistencies),则需要撤销strict,重新执行update --all,再设置channel priority strict。

    6. 如何查看.condarc文件的位置和内容?

    conda info

    执行conda info,会看到某一行显示user config files,这是.condarc的文件路径。

    【2021-03-23更新】

    说说conda install的常见问题:在已有环境中安装新的库,conda要求检查已有环境的兼容性,时间很长,而且很可能最后失败。显示信息是:

    Solving environment: failed with initial frozen solve. Retrying with flexible solve.
    Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
    Collecting package metadata (repodata.json): done
    Solving environment: failed with initial frozen solve. Retrying with flexible solve.
    Solving environment: \
    Found conflicts! Looking for incompatible packages.

    查阅网站,发现这是conda系统的本身问题,没有好的解决方法。

    https://github.com/conda/conda/issues/9367

    https://stackoverflow.com/questions/57518050/conda-install-and-update-do-not-work-also-solving-environment-get-errors

    我尝试了很多人赞同的方法,比如用conda的老版本,或者先更新所有的已有代码库,都无法解决问题。

    conda update --all

    最终找到的不完美解决方法是:改用pip安装新的包。

    采用pip方法也有问题。pip和conda不完全兼容,有时候会报错。只能是碰运气,先用pip安装,看看能不能运行。如果不行,再想其他方法。

    比如我在某个conda环境里(python 3.7),安装tensorflow 1.13,成功方法是

    pip install tensorflow==1.13.0rc1

    https://pypi.org/project/tensorflow/1.13.0rc1/

    备注:pip install tensorflow==1.13.0不成功。缺少具体的版本信息。

    另外,受到这篇文章的启发(知乎回答),在配置新的conda环境时,可以用conda创建环境,尽可能使用pip安装代码包,如果某个代码包在pip上不提供,再用conda install。这样可以尽可能避开conda检查兼容性的问题。

     
  • 相关阅读:
    js--数组中的最值
    js--数组合并并且去重
    js---数组去重的方法总结???
    input 输入框又被输入法遮挡啦
    使用装饰者模式改善既有代码
    简易的 webpack + vue 完成本地化数据 mock
    vue 数据持久化(刷新保存数据)的探索
    JavaScript await 与 promise 的纠葛
    javascript 函数的暂停和恢复
    Symbol 小妙处
  • 原文地址:https://www.cnblogs.com/lishanyang/p/16207723.html
Copyright © 2020-2023  润新知