日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

为什么jupyterlab运行程序的时候会自动停止_气象人的JupyterLab

發布時間:2023/12/2 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 为什么jupyterlab运行程序的时候会自动停止_气象人的JupyterLab 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

上兩篇文章

Jupyterlab安裝配置教程

Jupyter多用戶配置

中講了Jupyter的主要部署方法,老實說,對新手很不友好,我也不想再經歷一次這樣的過程,尤其是Basemap的安裝。所以,咱直接打包個鏡像吧。不得不說Docker真是個拯救了無數程序猿秀發的好工具。

Quick Start

如果你想快速部署,而沒有時間看完教程的話,看這里就好。或者看Gitee上本項目的主頁。

首先安裝Docker,方法見Docker常用命令總結

docker pull registry.cn-shanghai.aliyuncs.com/bugatii100peagle/jupytercgmsabefcn:v1 cd ~ mkdir jupyterlab mkdir jupyterlab/workspace docker run --name jupytercgmsabefcn -d -p 8000:8888 -v `pwd`/jupyterlab:/workspace -w /workspace -e GRANT_SUDO=yes --user root registry.cn-shanghai.aliyuncs.com/bugatii100peagle/jupytercgmsabefcn jupyter-lab --no-browser --port=8888 --ip=0.0.0.0 --allow-root

預計安裝時間4小時(博主使用家用WiFi,視網絡環境時間可能有延長),其中安裝Docker用 1~2 小時,拖取jupytercgmsabefcn鏡像用2小時。run起來之后,瀏覽器打開http://IP:8080,密碼是空密碼,直接回車即可。

Tips

  • 不要在jupyterlab直接掛在阿里云OSS,OSS擅長存儲不擅長訪問。
  • jupyterlab/workspace是用于暫存的工作空間,在此文件夾下讀寫數據和作圖都比較快速。
  • jupyterlab下另建一個新文件夾用于掛載阿里云OSS或FTP,workspace下文件編寫完成再歸檔至此OSS文件夾。既能保證數據不丟失,又能保證讀寫速度。
  • C 和 Grads 的插件

    我的鏡像是很久以前我就裝好了的,拖取的是官方的 jupyter-science 已經預裝好了python3 julia R 我后來又裝了C Grads,至于怎么裝的我忘了,不過機智的我打包了鏡像。直接拖下來用就行。

    【 2020-02-20 14:26:59】我想起來了,好像是在Jupyter-Docker-stacks上找的jupyter-datascience-notebook,我好像還把Scipy刪掉了。

    docker pull registry.cn-shanghai.aliyuncs.com/bugatii100peagle/jupytercgrads docker run --name jupyter -d -p 8000:8888 --restart=always -v `pwd`/jupyterlab/workspace:/workspace -w /workspace -e GRANT_SUDO=yes --user root 127.0.0.1:5000/jupytercgrads jupyter-lab --no-browser --port=8888 --ip=0.0.0.0 --allow-root

    安裝運行參考我之前寫的jupyterLab安裝配置教程,運行界面如下

    氣象繪圖工具包 Metpy Siphon atmos

    參考Meetpy Installation Guide和在Jupyter中安裝Python包,docker exec -it jupyter bash進入鏡像后,輸入如下代碼

    python -m pip install metpy python -m pip install siphon

    atoms要手動安裝,下載代碼后再install

    wget https://files.pythonhosted.org/packages/65/1b/9e08dbd6979877cb1d24b5b3ee607c91ece212b010b49715ca7443999e24/atmos-0.2.5.tar.gz tar -xvf atmos-0.2.5.tar.gz cd atmos-0.2.5 nano setup.py

    修改片段

    from setuptools import setup from pip..req import parse_requirements #修改片段,不然會發生報錯 ModuleNotFoundError: No module named 'pip.req' from setuptools import setup from pip._internal.req import parse_requirements

    保存退出再執行

    python setup.py install

    參考install quantopian時出現No module named pip.req的解決辦法

    地圖支持包Basemap

    conda update -n base conda conda update -n base conda # 對,更新兩次,直到不會再提示更新

    更新這步都很費時間,保守估計兩小時。為什么說是估計呢,因為后面我沒熬住,睡著了。然后參考解決conda的“Solving environment: failed”問題和anaconda安裝basemap運行如下代碼。

    conda config --set channel_priority flexible conda install basemap

    彈出如下信息即表示,已經找到basemap安裝包,conda install basemap反而安裝挺快,快到讓我懷疑昨晚熬夜的兩小時還失敗了是不是幻覺。

    The following NEW packages will be INSTALLED:basemap conda-forge/linux-64::basemap-1.2.1-py37hd1be537_2geos conda-forge/linux-64::geos-3.8.0-he1b5a44_0proj4 conda-forge/linux-64::proj4-5.2.0-he1b5a44_1006pyproj conda-forge/linux-64::pyproj-1.9.6-py37h516909a_1002pyshp conda-forge/noarch::pyshp-2.1.0-py_0

    測試運行,會遇到basemap KeyError 'PROJ_LIB'解決辦法,解決辦法就是代碼中指定目錄運行。終端輸入

    whereis proj # 輸出:proj: /usr/share/proj /opt/conda/bin/proj

    瀏覽器打開jupyter,新建.ipynb文件,輸入

    %matplotlib inline import os os.environ['PROJ_LIB'] = "/usr/share/proj" import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemapplt.figure(figsize=(8, 8)) m = Basemap(projection='ortho', resolution=None, lat_0=50, lon_0=-100) m.bluemarble(scale=0.5);

    參考數據科學 IPython 筆記本 8.16 地理數據和 Basemap無報錯,并出現一個地球,即表示安裝成功。

    basemap還挺大,裝了2G左右吧。

    Basemap 的繼承者 Cartopy

    Basemap 自2020年開始停止維護,所以,新的項目還是用新工具吧。

    wget https://files.pythonhosted.org/packages/e5/92/fe8838fa8158931906dfc4f16c5c1436b3dd2daf83592645b179581403ad/Cartopy-0.17.0.tar.gz tar zxvf Cartopy-0.17.0.tar.gz cd Cartopy-0.17.0 python setup.py install

    網不好的也可以嘗試從百度網盤下載

    鏈接:https://pan.baidu.com/s/1EOofzd9VcFgYTbpRhDf5pg 提取碼:c60e

    測試,瀏覽器打開jupyter輸入以下代碼,能出土沒報錯即可。

    import cartopy.crs as ccrs import matplotlib.pyplot as pltax = plt.axes(projection=ccrs.PlateCarree()) ax.coastlines()# Save the plot by calling plt.savefig() BEFORE plt.show() # plt.savefig('coastlines.pdf') # plt.savefig('coastlines.png') plt.show()

    Ncar的NCL_to_Python

    參考Important letter regarding the future of NCL和PyNIO和PyNGL。但是PyNIO和PyNGL與basemap沖突,climate-dev mailing list archives,也提到對代碼做了修改,反正這兩貨不能在一起,那就打包兩個,幸好之前docker了鏡像。

    從剛安裝號atmos的那個鏡像開始,運行并進入鏡像。

    conda config --set channel_priority flexible conda install xarray netcdf4 scipy pyngl pynio ncl

    測試,瀏覽器打開jupyterlab,上傳下面這個包,解壓,打開,運行其中的文件,沒報錯,出圖即可。

    鏈接:https://pan.baidu.com/s/1lpBJTJHp466zbru9cKtoTg 提取碼:8q3y

    歐洲中心數據下載ecmwf-api

    參考利用Python調用ECMWF歐洲中心API批量下載數據,python調用ECMWF歐洲中心api下載數據

    python -m pip install ecmwf-api-client

    測試,打開ipython,輸入下方代碼,沒報錯即可。

    from ecmwfapi import ECMWFDataServer

    Fortran支持jupyter-fortran-kernel

    下載插件包上傳之服務器解壓安裝。

    鏈接:https://pan.baidu.com/s/1EAkEEVtmuOyB_VtzEAMqrQ 提取碼:d4l6 復制這段內容后打開百度網盤手機App,操作更方便哦 apt install gfortran unzip jupyter-fortran-kernel-master.zip cd jupyter-fortran-kernel-master python setup.py install jupyter-kernelspec install fortran_spec/

    打開瀏覽器,就可以看到Fortran的選項

    點擊打開,輸入

    program aa implicit none print*,'Hello World' end

    鏡像包信息

    jupytercgrads_metpy_siphon_atmos_basemap_ecmwf_fortran_cartopy

    jupytercgrads_metpy_siphon_atmos_ncl_ecmwf_fortran

    失敗的方法安裝地圖支持包BaseMap

    首先安裝依賴包

    python -m pip install geos python -m pip install pip python -m pip install Pillow

    參考basemap安裝教程,linux python 安裝basemap

    pip install pyproj

    測試,bash輸入以下命令沒報錯即可。

    python -c 'import pyproj'

    basemap的包真的好難下,我這里存了個百度網盤,需要的自行下載。

    鏈接:https://pan.baidu.com/s/1hMhdVfVb1n709bxnSJCECg 提取碼:a1cw

    參考python番外(2)——Basemap安裝 上傳服務器到Docker環境,這里可以用workspace目錄,反正裝完刪掉就可以。

    tar zxvf basemap-1.1.0.tar.gz cd basemap-1.0.7/geos-3.3.3/ export GEOS_DIR=/usr/local ./configure --prefix=$GEOS_DIR make

    能解壓個二十分鐘左右吧,慢慢等著,然后make報錯。

    return (ISNAN(x) && ISNAN(y) && ISNAN(z));^~~~~ ../../../include/geos/geom/Coordinate.inl:39:10: note: suggested alternative: ‘SN AN’ return (ISNAN(x) && ISNAN(y) && ISNAN(z));^~~~~SNAN ../../../include/geos/geom/Coordinate.inl: In member function ‘bool geos::geom::C oordinate::equals3D(const geos::geom::Coordinate&) const’: ../../../include/geos/geom/Coordinate.inl:83:21: error: ‘ISNAN’ was not declared in this scope((z == other.z)||(ISNAN(z) && ISNAN(other.z)));^~~~~ ../../../include/geos/geom/Coordinate.inl:83:21: note: suggested alternative: ‘SN AN’((z == other.z)||(ISNAN(z) && ISNAN(other.z)));^~~~~SNAN make[4]: *** [Makefile:373: IndexedPointInAreaLocator.lo] Error 1 make[4]: Leaving directory '/workspace/basemap-1.1.0/geos-3.3.3/src/algorithm/loc ate' make[3]: *** [Makefile:392: all-recursive] Error 1 make[3]: Leaving directory '/workspace/basemap-1.1.0/geos-3.3.3/src/algorithm/loc ate' make[2]: *** [Makefile:444: all-recursive] Error 1 make[2]: Leaving directory '/workspace/basemap-1.1.0/geos-3.3.3/src/algorithm' make[1]: *** [Makefile:476: all-recursive] Error 1 make[1]: Leaving directory '/workspace/basemap-1.1.0/geos-3.3.3/src' make: *** [Makefile:368: all-recursive] Error

    解決辦法參考GEOS安裝出錯

    cd include/geos/ nano platform.h

    修改24行

    /* Has isnan */ /* #undef HAVE_ISNAN */

    改為

    /* Has isnan */ #define HAVE_ISNAN 1

    然后 不要configure 直接 make 然后 make install

    make 也要個40多分鐘吧

    【 2020-02-18 0:23:56】 一個小時,反正也就只有等著。

    【 2020-02-18 1:08:34】 又一個小時,我好想睡覺,但是不看他裝完我睡不著。

    【 2020-02-18 1:28:23】我好像想起來我折騰這玩意這么慢了,這是在OSS下,為了方便管理代碼,我掛載了OSS盤做儲存,OSS擅長存而不擅長高頻訪問,而編譯make就是個高頻的活動。

    【 2020-02-18 1:39:44】脫離OSS目錄重新configure nano platform.h make

    【2020-02-18 1:44:01 】make 完畢,make install 不到30秒完畢。2/100*60=1.2,也就是說我花了兩小時等一個1分20秒就能出的東西,還傻等了兩小時。

    但是我回到basemap文件夾下python setup.py install 時報錯

    In file included from src/_geoslib.c:248:0: /usr/local/include/geos_c.h:149:22: note: expected ‘GEOSMessageHandler {aka void (*)(const char *)}’ but argument is of type ‘void (*)(char *, char *)’extern void GEOS_DLL initGEOS(GEOSMessageHandler notice_function, ··· src/_geoslib.c:5619:13: error: ‘PyThreadState {aka struct _ts}’ has no member named ‘exc_traceback’; did you mean ‘curexc_traceback’?tstate->exc_traceback = local_tb;^~~~~~~~~~~~~curexc_traceback error: Command "gcc -pthread -B /opt/conda/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I/usr/local/include -I['/opt/conda/lib/python3.7/site-packages/numpy/core/include'] -I/opt/conda/lib/python3.7/site-packages/numpy/core/include -I/opt/conda/include/python3.7m -c src/_geoslib.c -o build/temp.linux-x86_64-3.7/src/_geoslib.o -MMD -MF build/temp.linux-x86_64-3.7/src/_geoslib.o.d" failed with exit status 1

    參考 Python踩坑之路, Python 3.7 Build failure: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘exc_type’; did you mean ‘curexc_type’? #11

    pip install PyOpenGL PyOpenGL_accelerate apt-get install python3-dev apt-get install libevent-dev

    當然都沒有解決。

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的为什么jupyterlab运行程序的时候会自动停止_气象人的JupyterLab的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。