气象学家公众号 发表于 2024-3-17 00:19:41

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

0.前言介绍
人生苦短,我用Python,气象人需要利器!

对于气象常用的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的配置文件可以按照如下命令添加。

命令添加:
1# 添加清华的Anaconda常用源
2conda config --add channels <a href="https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/</a>
3conda config --add channels <a href="https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/</a>
4conda config --set show_channel_urls yes.
1# 附加库的源
2# Conda Forge
3conda config --add channels <a href="https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/</a>
4
5# msys2
6conda config --add channels <a href="https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/</a>
7
8# bioconda
9conda config --add channels <a href="https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/</a>
10
11#menpo
12conda config --add channels <a href="https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/</a>
13
14# pytorch
15conda config --add channels <a href="https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//pytorch/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//pytorch/</a>另外一种方法修改~/.condarc的配置文件:
1vim ~/.condarc
2# 按ESC跳到命令模式,然后
3# :wq 保存文件并退出vi.
4# q: 不保存文件,退出vi.channels:
- <a href="https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/</a>
- <a href="https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/</a>
- <a href="https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/</a>
- <a href="https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/</a>
- <a href="https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/</a>
- <a href="https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/menpo/</a>
- <a href="https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//pytorch/" target="_blank">https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud//pytorch/</a>
- 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左右,存点核心数据和代码不成问题(需要科学上网来保证其正常使用,推荐SSR)。
人生苦短,我用Python

8.YML库一览
YML文件下载:https://box.nju.edu.cn/f/c4220903c4d244fb9bed/
1name: atmpy
2channels:
3- conda-forge
4- esri
5- defaults
6dependencies:
7- alabaster=0.7.12=py36_0
8- appnope=0.1.0=py36_0
9- arcgis=1.4.1=py36h9149653_1
10- asn1crypto=0.24.0=py36_0
11- babel=2.6.0=py36_0
12- backcall=0.1.0=py_0
13- backports=1.0=py36_1
14- backports.os=0.1.1=py36_0
15- basemap=1.2.0=py36h0acbc05_0
16- blas=1.0=mkl
17- bleach=2.1.3=py_0
18- bokeh=0.12.15=py36_0
19- boost=1.66.0=py36_1
20- boost-cpp=1.66.0=1
21- bottleneck=1.2.1=py36_1
22- bzip2=1.0.6=1
23- ca-certificates=2019.3.9=hecc5488_0
24- cairo=1.14.10=0
25- cartopy=0.16.0=py36_0
26- certifi=2019.3.9=py36_0
27- cf_units=1.2.0=py36_0
28- cffi=1.11.4=py36h342bebf_0
29- chardet=3.0.4=py36h96c241c_1
30- click=6.7=py_1
31- click-plugins=1.0.3=py36_0
32- cloudpickle=0.5.2=py_0
33- conda=4.6.14=py36_0
34- conda-env=2.6.0=h36134e3_0
35- cryptography=2.1.4=py36h842514c_0
36- curl=7.59.0=1
37- cycler=0.10.0=py36_0
38- cytoolz=0.9.0.1=py36_0
39- dask=0.17.2=py_0
40- dask-core=0.17.2=py_0
41- decorator=4.3.0=py_0
42- defusedxml=0.6.0=py_0
43- descartes=1.1.0=py_1
44- distributed=1.21.6=py36_0
45- docutils=0.14=py36hbfde631_0
46- entrypoints=0.2.3=py36_1
47- eofs=1.3.0=py36_0
48- expat=2.2.5=0
49- fontconfig=2.12.6=0
50- freetype=2.8.1=0
51- freexl=1.0.5=0
52- gdal=2.2.2=py36hd505dc6_1
53- geos=3.6.2=h0a44026_1004
54- geotiff=1.4.2=1
55- gettext=0.19.8.1=0
56- giflib=5.1.4=0
57- glib=2.55.0=0
58- h5netcdf=0.5.1=py_0
59- hdf4=4.2.13=0
60- hdf5=1.10.1=2
61- heapdict=1.0.0=py36_0
62- html5lib=1.0.1=py_0
63- icu=58.2=0
64- idna=2.6=py36h8628d0a_1
65- imagesize=1.1.0=py36_0
66- importlib_metadata=0.9=py36_0
67- intel-openmp=2018.0.0=8
68- ipykernel=4.8.2=py36_0
69- ipython=6.3.1=py36_0
70- ipython_genutils=0.2.0=py36_0
71- ipywidgets=7.2.1=py36_1
72- iris=2.0.0=py36_2
73- iris-sample-data=2.1.0=py_0
74- jedi=0.12.0=py36_0
75- jinja2=2.10=py36_0
76- jpeg=9b=2
77- json-c=0.12.1=0
78- jsonschema=2.6.0=py36_1
79- jupyter=1.0.0=py_1
80- jupyter_client=5.2.3=py36_0
81- jupyter_console=5.2.0=py36_0
82- jupyter_core=4.4.0=py_0
83- kealib=1.4.7=4
84- keyring=19.0.1=py36_0
85- kiwisolver=1.0.1=py36_1
86- krb5=1.14.6=0
87- libcurl=7.61.0=hf30b1f0_0
88- libcxx=4.0.1=h579ed51_0
89- libcxxabi=4.0.1=hebd6815_0
90- libdap4=3.19.1=h3d3e54a_0
91- libedit=3.1=hb4e282d_0
92- libffi=3.2.1=h475c297_4
93- libgcc=4.8.5=hdbeacc1_10
94- libgdal=2.2.2=h3559a57_1
95- libgfortran=3.0.1=h93005f0_2
96- libiconv=1.15=hdd342a3_7
97- libkml=1.3.0=6
98- libnetcdf=4.4.1.1=hdf03fd4_8
99- libpng=1.6.34=0
100- libpq=10.3=hf30b1f0_0
101- libsodium=1.0.16=0
102- libspatialindex=1.8.5=h2c08c6b_2
103- libspatialite=4.3.0a=19
104- libssh2=1.8.0=2
105- libtiff=4.0.9=hcb84e12_1
106- libxml2=2.9.8=h2866646_0
107- libxslt=1.1.32=0
108- locket=0.2.0=py36_1
109- lxml=4.2.1=py36_0
110- mapclassify=2.0.1=py_0
111- markupsafe=1.0=py36_0
112- matplotlib=2.2.2=py36_1
113- mistune=0.8.3=py_0
114- mkl=2018.0.2=1
115- mkl_fft=1.0.1=py36_1
116- mkl_random=1.0.1=py36_0
117- msgpack-python=0.5.6=py36_0
118- munch=2.3.1=py_0
119- nbconvert=5.4.1=py36_3
120- nbformat=4.4.0=py36_0
121- ncurses=6.0=hd04f020_2
122- notebook=5.4.1=py36_0
123- numpy=1.14.2=py36ha9ae307_1
124- numpydoc=0.9.1=py_0
125- olefile=0.45.1=py36_0
126- openjpeg=2.3.0=2
127- openssl=1.0.2r=h1de35cc_0
128- owslib=0.16.0=py_0
129- packaging=17.1=py_0
130- pandas=0.22.0=py36_0
131- pandoc=2.1.3=0
132- pandocfilters=1.4.1=py36_0
133- parso=0.2.0=py_0
134- partd=0.3.8=py36_0
135- path.py=12.0.1=py_0
136- patsy=0.5.0=py36_0
137- pcre=8.41=1
138- pexpect=4.5.0=py36_0
139- pickleshare=0.7.4=py36_0
140- pillow=5.1.0=py36_0
141- pint=0.9=py36_2
142- pixman=0.34.0=1
143- poppler=0.61.1=3
144- poppler-data=0.4.8=0
145- proj4=4.9.3=h3f1bf9d_7
146- prompt_toolkit=1.0.15=py36_0
147- psutil=5.4.5=py36_0
148- psycopg2=2.7.4=py36_0
149- ptyprocess=0.5.2=py36_0
150- pycosat=0.6.3=py36hee92d8f_0
151- pycparser=2.18=py36h724b2fc_1
152- pyepsg=0.3.2=py36_0
153- pygments=2.2.0=py36_0
154- pyke=1.1.1=py36_0
155- pyopenssl=17.5.0=py36h51e4350_0
156- pyparsing=2.2.0=py36_0
157- pyqt=5.6.0=py36_5
158- pysal=1.14.3=py36_0
159- pyshp=1.2.12=py_0
160- pysocks=1.6.7=py36hfa33cec_1
161- python=3.6.5=1
162- python-dateutil=2.7.2=py_0
163- python.app=2=py36h54569d5_7
164- pytz=2018.4=py_0
165- pyyaml=3.12=py36_1
166- pyzmq=17.0.0=py36_4
167- qt=5.6.2=h9e3eb04_4
168- qtconsole=4.3.1=py36_0
169- readline=7.0=hc1231fa_4
170- requests=2.18.4=py36h4516966_1
171- rtree=0.8.3=py36_0
172- ruamel_yaml=0.15.35=py36h1de35cc_1
173- scipy=1.0.1=py36hcaad992_0
174- send2trash=1.5.0=py_0
175- setuptools=38.4.0=py36_0
176- shapely=1.6.4=py36h2e8a847_1000
177- simplegeneric=0.8.1=py36_0
178- sip=4.18=py36_1
179- six=1.11.0=py36h0e22d5e_1
180- snowballstemmer=1.2.1=py36h6c7b616_0
181- sortedcontainers=1.5.9=py36_0
182- sphinx=2.0.1=py_0
183- sphinxcontrib-applehelp=1.0.1=py_0
184- sphinxcontrib-devhelp=1.0.1=py_0
185- sphinxcontrib-htmlhelp=1.0.2=py_0
186- sphinxcontrib-jsmath=1.0.1=py_0
187- sphinxcontrib-qthelp=1.0.2=py_0
188- sphinxcontrib-serializinghtml=1.1.3=py_0
189- sqlalchemy=1.2.6=py36_0
190- sqlite=3.20.1=0
191- statsmodels=0.8.0=py36_0
192- tblib=1.3.2=py36_0
193- terminado=0.8.1=py36_0
194- testpath=0.3.1=py36_0
195- tk=8.6.7=h35a86e2_3
196- toolz=0.9.0=py_0
197- tornado=5.0.2=py36_0
198- traitlets=4.3.2=py36_0
199- udunits2=2.2.26=0
200- urllib3=1.22=py36h68b9469_0
201- wcwidth=0.1.7=py36_0
202- webencodings=0.5=py36_0
203- wheel=0.30.0=py36h5eb2c71_1
204- widgetsnbextension=3.2.1=py36_0
205- wrapt=1.10.11=py36_0
206- wrf-python=1.1.3=py36_0
207- xerces-c=3.2.0=0
208- xz=5.2.3=h0278029_2
209- yaml=0.1.7=hc338f04_2
210- zeromq=4.2.5=1
211- zict=0.1.3=py_0
212- zipp=0.3.3=py36_1
213- zlib=1.2.11=hf3cbc9b_2
214- pip:
215    - affine==2.2.2
216    - appdirs==1.4.3
217    - attrs==19.1.0
218    - beautifulsoup4==4.7.1
219    - cligj==0.5.0
220    - cmaps==1.0.0
221    - elevation==1.0.6
222    - fasteners==0.14.1
223    - future==0.17.1
224    - imageio==2.5.0
225    - metpy==0.10.0
226    - monotonic==1.5
227    - pip==19.1
228    - pooch==0.2.1
229    - protobuf==3.7.1
230    - pyproj==1.9.6
231    - rasterio==1.0.22
232    - siphon==0.8.0
233    - snuggs==1.4.3
234    - soupsieve==1.9.1
235    - xarray==0.12.1
236prefix: /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/


文章来源于微信公众号:气象学家


页: [1]
查看完整版本: 清华Anaconda 镜像恢复及一键安装气象常用的Python库