前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >清华Anaconda 镜像恢复及一键安装气象常用的Python库

清华Anaconda 镜像恢复及一键安装气象常用的Python库

作者头像
bugsuse
发布2020-04-21 16:11:57
3K0
发布2020-04-21 16:11:57
举报
文章被收录于专栏:气象杂货铺气象杂货铺

对于气象常用的Python库有一个简要的整理,主要是方便自己一键式的在不同的平台上安装常用的库。过去,依赖于pip或conda install package_name 耗时耗力,且各个库的版本号可能会存在依赖关系的冲突,往往顾此失彼。后来深入使用conda,发现依赖于导出和导入开发环境yml文件能够解决这个问题。

依赖的Python分发版本主要是Ananconda,要是觉得这个包过于庞大了。可以精简一些,只安装Miniconda也行。

这样,安装好后就能有一个基本的Python环境,在这里推荐Python3.6+以上的版本。而Python的编辑器推荐:Sublime Text3或者Pycharm,前者可以免费使用,非注册版本偶尔会提醒购买,但不影响使用,后者可以下载教育版,非商业用途,是免费使用。至于其他的还有VS Code,也是非常不错的。

Anaconda下载链接:https://www.continuum.io/downloads

Miniconda下载链接:https://docs.conda.io/en/latest/miniconda.html

前些日子,Anaconda的高校镜像库基本都关停了(清华、中科大、南大),紧接着国内的腾讯源也不能使用了。最近清华源重新恢复了(2019-06-15),相关的~/.condarc的配置文件可以按照如下命令添加。

命令添加:

# 添加清华的Anaconda常用源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

.

# 附加库的源
# Conda Forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

# msys2
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

# bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/

#menpo
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/

# pytorch
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//pytorch/

另外一种方法修改~/.condarc的配置文件:

vim ~/.condarc
# 按ESC跳到命令模式,然后
# :wq 保存文件并退出vi.
# q: 不保存文件,退出vi.
channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//pytorch/
  - esri
  - defaults

当Anaconda或者Miniconda安装好了,且在~/.bashrc或~/.bash_profile或~/.zshrc环境变量配置文件中添加了Python3.6+的路径了,就可以使用了,这也是一个最基本的Base开发环境。

主要是基于macOS这个平台为例来说一下(Win/Linux类似):

1.创建新的开发环境

conda create --name <envname> python=<version> <optional dependencies> 例如,要创建一个atmpy的环境,Python开发环境要求是3.7版本: conda create -n atmpy python=3.7

若要在当前目录下创建,则使用

conda create -p <envname> python=<version> <optional dependencies>

2.查看目前拥有的开发环境

conda info --envs 或者 conda env list

3.激活开发环境

conda activate <envname>

上面的例子,conda activate atmpy

4.退出开发环境

conda deactivate

5.复制现有的开发环境

conda create --name <envname> --clone <existing_env>

例如,把已经创建atmpy开发环境进行复制: conda create --name atmpy_copy --clone atmpy

6.删除已经创建的开发环境

conda remove --name <envname> --all

例如,删除之前复制的开发环境,

conda remove --name atmpy_copy --all

7.导出和导入开发环境的yml文件

导出conda env export > environment.yml

导入conda env create -f environment.yml

导出和导入都会自动帮你处理好pip中的依赖,如果是库出现了冲突,直接把版本号删除就行了,而pip中无法在线安装的,会提示警告,之后可以依据python setup.py install 手动安装。最后,yml文件可以利用name命名导入的环境,以及依赖的源,prefix指定新建的环境安装的位置。在此,我提供了两个自己常用的Python气象库yml文件。有了它,就可以一键式安装了,妈妈再也不担心也删了装,装了删。但最重要的是自己写的代码和数据集的有一个云端自动备份,且能够保存版本,这里推荐Dropbox,通过推荐新用户的办法可以扩展到18GB左右,存点核心数据和代码不成问题。


人生苦短,我用Python


8.YML库一览

YML文件下载:https://box.nju.edu.cn/f/c4220903c4d244fb9bed/

name: atmpy
channels:
  - conda-forge
  - esri
  - defaults
dependencies:
  - alabaster=0.7.12=py36_0
  - appnope=0.1.0=py36_0
  - arcgis=1.4.1=py36h9149653_1
  - asn1crypto=0.24.0=py36_0
  - babel=2.6.0=py36_0
  - backcall=0.1.0=py_0
  - backports=1.0=py36_1
  - backports.os=0.1.1=py36_0
  - basemap=1.2.0=py36h0acbc05_0
  - blas=1.0=mkl
  - bleach=2.1.3=py_0
  - bokeh=0.12.15=py36_0
  - boost=1.66.0=py36_1
  - boost-cpp=1.66.0=1
  - bottleneck=1.2.1=py36_1
  - bzip2=1.0.6=1
  - ca-certificates=2019.3.9=hecc5488_0
  - cairo=1.14.10=0
  - cartopy=0.16.0=py36_0
  - certifi=2019.3.9=py36_0
  - cf_units=1.2.0=py36_0
  - cffi=1.11.4=py36h342bebf_0
  - chardet=3.0.4=py36h96c241c_1
  - click=6.7=py_1
  - click-plugins=1.0.3=py36_0
  - cloudpickle=0.5.2=py_0
  - conda=4.6.14=py36_0
  - conda-env=2.6.0=h36134e3_0
  - cryptography=2.1.4=py36h842514c_0
  - curl=7.59.0=1
  - cycler=0.10.0=py36_0
  - cytoolz=0.9.0.1=py36_0
  - dask=0.17.2=py_0
  - dask-core=0.17.2=py_0
  - decorator=4.3.0=py_0
  - defusedxml=0.6.0=py_0
  - descartes=1.1.0=py_1
  - distributed=1.21.6=py36_0
  - docutils=0.14=py36hbfde631_0
  - entrypoints=0.2.3=py36_1
  - eofs=1.3.0=py36_0
  - expat=2.2.5=0
  - fontconfig=2.12.6=0
  - freetype=2.8.1=0
  - freexl=1.0.5=0
  - gdal=2.2.2=py36hd505dc6_1
  - geos=3.6.2=h0a44026_1004
  - geotiff=1.4.2=1
  - gettext=0.19.8.1=0
  - giflib=5.1.4=0
  - glib=2.55.0=0
  - h5netcdf=0.5.1=py_0
  - hdf4=4.2.13=0
  - hdf5=1.10.1=2
  - heapdict=1.0.0=py36_0
  - html5lib=1.0.1=py_0
  - icu=58.2=0
  - idna=2.6=py36h8628d0a_1
  - imagesize=1.1.0=py36_0
  - importlib_metadata=0.9=py36_0
  - intel-openmp=2018.0.0=8
  - ipykernel=4.8.2=py36_0
  - ipython=6.3.1=py36_0
  - ipython_genutils=0.2.0=py36_0
  - ipywidgets=7.2.1=py36_1
  - iris=2.0.0=py36_2
  - iris-sample-data=2.1.0=py_0
  - jedi=0.12.0=py36_0
  - jinja2=2.10=py36_0
  - jpeg=9b=2
  - json-c=0.12.1=0
  - jsonschema=2.6.0=py36_1
  - jupyter=1.0.0=py_1
  - jupyter_client=5.2.3=py36_0
  - jupyter_console=5.2.0=py36_0
  - jupyter_core=4.4.0=py_0
  - kealib=1.4.7=4
  - keyring=19.0.1=py36_0
  - kiwisolver=1.0.1=py36_1
  - krb5=1.14.6=0
  - libcurl=7.61.0=hf30b1f0_0
  - libcxx=4.0.1=h579ed51_0
  - libcxxabi=4.0.1=hebd6815_0
  - libdap4=3.19.1=h3d3e54a_0
  - libedit=3.1=hb4e282d_0
  - libffi=3.2.1=h475c297_4
  - libgcc=4.8.5=hdbeacc1_10
  - libgdal=2.2.2=h3559a57_1
  - libgfortran=3.0.1=h93005f0_2
  - libiconv=1.15=hdd342a3_7
  - libkml=1.3.0=6
  - libnetcdf=4.4.1.1=hdf03fd4_8
  - libpng=1.6.34=0
  - libpq=10.3=hf30b1f0_0
  - libsodium=1.0.16=0
  - libspatialindex=1.8.5=h2c08c6b_2
  - libspatialite=4.3.0a=19
  - libssh2=1.8.0=2
  - libtiff=4.0.9=hcb84e12_1
  - libxml2=2.9.8=h2866646_0
  - libxslt=1.1.32=0
  - locket=0.2.0=py36_1
  - lxml=4.2.1=py36_0
  - mapclassify=2.0.1=py_0
  - markupsafe=1.0=py36_0
  - matplotlib=2.2.2=py36_1
  - mistune=0.8.3=py_0
  - mkl=2018.0.2=1
  - mkl_fft=1.0.1=py36_1
  - mkl_random=1.0.1=py36_0
  - msgpack-python=0.5.6=py36_0
  - munch=2.3.1=py_0
  - nbconvert=5.4.1=py36_3
  - nbformat=4.4.0=py36_0
  - ncurses=6.0=hd04f020_2
  - notebook=5.4.1=py36_0
  - numpy=1.14.2=py36ha9ae307_1
  - numpydoc=0.9.1=py_0
  - olefile=0.45.1=py36_0
  - openjpeg=2.3.0=2
  - openssl=1.0.2r=h1de35cc_0
  - owslib=0.16.0=py_0
  - packaging=17.1=py_0
  - pandas=0.22.0=py36_0
  - pandoc=2.1.3=0
  - pandocfilters=1.4.1=py36_0
  - parso=0.2.0=py_0
  - partd=0.3.8=py36_0
  - path.py=12.0.1=py_0
  - patsy=0.5.0=py36_0
  - pcre=8.41=1
  - pexpect=4.5.0=py36_0
  - pickleshare=0.7.4=py36_0
  - pillow=5.1.0=py36_0
  - pint=0.9=py36_2
  - pixman=0.34.0=1
  - poppler=0.61.1=3
  - poppler-data=0.4.8=0
  - proj4=4.9.3=h3f1bf9d_7
  - prompt_toolkit=1.0.15=py36_0
  - psutil=5.4.5=py36_0
  - psycopg2=2.7.4=py36_0
  - ptyprocess=0.5.2=py36_0
  - pycosat=0.6.3=py36hee92d8f_0
  - pycparser=2.18=py36h724b2fc_1
  - pyepsg=0.3.2=py36_0
  - pygments=2.2.0=py36_0
  - pyke=1.1.1=py36_0
  - pyopenssl=17.5.0=py36h51e4350_0
  - pyparsing=2.2.0=py36_0
  - pyqt=5.6.0=py36_5
  - pysal=1.14.3=py36_0
  - pyshp=1.2.12=py_0
  - pysocks=1.6.7=py36hfa33cec_1
  - python=3.6.5=1
  - python-dateutil=2.7.2=py_0
  - python.app=2=py36h54569d5_7
  - pytz=2018.4=py_0
  - pyyaml=3.12=py36_1
  - pyzmq=17.0.0=py36_4
  - qt=5.6.2=h9e3eb04_4
  - qtconsole=4.3.1=py36_0
  - readline=7.0=hc1231fa_4
  - requests=2.18.4=py36h4516966_1
  - rtree=0.8.3=py36_0
  - ruamel_yaml=0.15.35=py36h1de35cc_1
  - scipy=1.0.1=py36hcaad992_0
  - send2trash=1.5.0=py_0
  - setuptools=38.4.0=py36_0
  - shapely=1.6.4=py36h2e8a847_1000
  - simplegeneric=0.8.1=py36_0
  - sip=4.18=py36_1
  - six=1.11.0=py36h0e22d5e_1
  - snowballstemmer=1.2.1=py36h6c7b616_0
  - sortedcontainers=1.5.9=py36_0
  - sphinx=2.0.1=py_0
  - sphinxcontrib-applehelp=1.0.1=py_0
  - sphinxcontrib-devhelp=1.0.1=py_0
  - sphinxcontrib-htmlhelp=1.0.2=py_0
  - sphinxcontrib-jsmath=1.0.1=py_0
  - sphinxcontrib-qthelp=1.0.2=py_0
  - sphinxcontrib-serializinghtml=1.1.3=py_0
  - sqlalchemy=1.2.6=py36_0
  - sqlite=3.20.1=0
  - statsmodels=0.8.0=py36_0
  - tblib=1.3.2=py36_0
  - terminado=0.8.1=py36_0
  - testpath=0.3.1=py36_0
  - tk=8.6.7=h35a86e2_3
  - toolz=0.9.0=py_0
  - tornado=5.0.2=py36_0
  - traitlets=4.3.2=py36_0
  - udunits2=2.2.26=0
  - urllib3=1.22=py36h68b9469_0
  - wcwidth=0.1.7=py36_0
  - webencodings=0.5=py36_0
  - wheel=0.30.0=py36h5eb2c71_1
  - widgetsnbextension=3.2.1=py36_0
  - wrapt=1.10.11=py36_0
  - wrf-python=1.1.3=py36_0
  - xerces-c=3.2.0=0
  - xz=5.2.3=h0278029_2
  - yaml=0.1.7=hc338f04_2
  - zeromq=4.2.5=1
  - zict=0.1.3=py_0
  - zipp=0.3.3=py36_1
  - zlib=1.2.11=hf3cbc9b_2
  - pip:
    - affine==2.2.2
    - appdirs==1.4.3
    - attrs==19.1.0
    - beautifulsoup4==4.7.1
    - cligj==0.5.0
    - cmaps==1.0.0
    - elevation==1.0.6
    - fasteners==0.14.1
    - future==0.17.1
    - imageio==2.5.0
    - metpy==0.10.0
    - monotonic==1.5
    - pip==19.1
    - pooch==0.2.1
    - protobuf==3.7.1
    - pyproj==1.9.6
    - rasterio==1.0.22
    - siphon==0.8.0
    - snuggs==1.4.3
    - soupsieve==1.9.1
    - xarray==0.12.1
prefix: /Your_path/anaconda3/envs/atmpy

注意:1.需要根据自己路径来修改prefix; 2.注释掉pip的部分,后续再单独使用pip安装。

9.参考

  • https://zhuanlan.zhihu.com/p/62899936
  • https://mirrors.tuna.tsinghua.edu.cn/news/
  • https://zhuanlan.zhihu.com/p/64766956
  • https://repo.continuum.io/pkgs/
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-03-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 气象杂货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.创建新的开发环境
  • 2.查看目前拥有的开发环境
  • 3.激活开发环境
  • 4.退出开发环境
  • 5.复制现有的开发环境
  • 6.删除已经创建的开发环境
  • 7.导出和导入开发环境的yml文件
  • 8.YML库一览
  • 9.参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档