<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          JupyterLab Server 搭建與使用筆記

          共 4752字,需瀏覽 10分鐘

           ·

          2020-12-08 23:28

          兩三個月前,有幸拿到了云筏的一個 4 核 16G,1TB硬盤,300M帶寬位于歐洲的云服務(wù)器,自帶的開箱即用的 RStudio Server 也非常給力,但最近這兩天在升級 R 的時候遇上了不少問題,也懶得去折騰了,于是想把 RStudio Server 替換成自己比較熟悉的 JupyterLab Server,這是一些折騰的筆記記錄。

          JupyterLab is a next-generation web-based user interface for Project Jupyter. JupyterLab enables you to work with documents and activities such as Jupyter notebooks, text editors, terminals, and custom components in a flexible, integrated, and extensible manner.


          1. 安裝

          JupyterLab 可以通過conda,pip,pipenvordocker的方式安裝。

          #?conda
          conda?install?-c?conda-forge?jupyterlab

          #
          ?pip
          pip?install?jupyterlab

          nb_conda_kernels 是一個 Jupyter 的擴展功能(extension),可以管理多個 Conda 環(huán)境下的 Jupyter 核心(kernels),整合多 Conda 環(huán)境中各種不同版本的 Python 或 R 等語言。

          1.1 安裝 nb_conda_kernels

          nb_conda_kernels?必須安裝在在 Jupyter(Jupyter Notebook 或 JupyterLab)所在的 Conda 環(huán)境中,可以直接放在?base?環(huán)境中,或是另外建立獨立的 Conda 環(huán)境亦可。

          這里我們建立一哥新的 Conda 環(huán)境,專門用于放置 JupyterLab:

          #?建立?Conda?環(huán)境,并安裝?JupyterLab
          conda?create?--name?jupyterlab?python=3.7?jupyterlab

          在此 Conda 環(huán)境加裝 nb_conda_kernels 擴展功能套件:

          #?安裝?nb_conda_kernels?擴展功能套件
          conda?install?--name?jupyterlab?nb_conda_kernels

          1.2 安裝 Jupyter Kernels

          所有需要在 Jupyter 中透過nb_conda_kernels來使用 Conda 環(huán)境,都需要安裝對應(yīng)語言的的 Jupyter 核心(kernels)。

          建立一個 Python 2.7 的 Conda 環(huán)境:

          #?建立?Python?2.7?的?Conda?環(huán)境
          conda?create?--name?Python2?python=2.7.18

          #?安裝?Python?的?Jupyter?核心
          conda?install?--name?Python?ipykernel

          建立一個 R-4.0.2 的 Conda 環(huán)境:

          #?建立?R?4.0.2?的?Conda?環(huán)境
          conda?create?--name?R-4.0.2?--channel?r?r-essentials=4.0.2?r-base=4.0.2

          #?安裝?R?的?Jupyter?核心
          conda?install?--name?R-4.0.2?--channel?r?r-irkernel

          2. 啟動

          安裝好所有的 Conda 環(huán)境以及對應(yīng)的 Jupyter 核心之后,就可以依照一般的方式啟動 JupyterLab:

          #?載入?Jupyter?的?Conda?環(huán)境(下面兩種方式都可以激活)
          $?conda?activate?jupyterlab?
          $?source?activate?jupyterlab

          #
          ?啟動?JupyterLab
          $?jupyter?lab?--ip?0.0.0.0?--port?9090
          JupyterLab 各種 Conda 環(huán)境與語言版本

          這樣就可以在單一一個 JupyterLab 界面中同時使用不同 Conda 環(huán)境下的各種語言與版本了。

          3. 配置遠程訪問

          3.1 進入 ipython 環(huán)境,生成秘鑰

          假設(shè)你已經(jīng)進入了 ipython 環(huán)境,參考下面的操作生成秘鑰。

          In?[1]:?from?notebook.auth?import?passwd
          In?[2]:?passwd()
          Enter?password:????????#填寫你的密碼(用于訪問jupyterlab的密碼)
          Verify?password:????#再次填寫你的密碼
          Out[2]:?'argon2:$argon2id$v=19$m=10240,t=10,p=8$ShdM5...vHBHA$EUCjIE1L8joDbugmWIDqLw'
          #這是你的密碼生成的密鑰

          3.2 生成 jupyterlab 配置文件

          使用--generate-config參數(shù),生成 jupyterlab 配置文件。

          $?jupyter?lab?--generate-config
          Writing?default?config?to:?/home/shenweiyan/.jupyter/jupyter_notebook_config.py

          3.3 修改配置文件

          JupyterLab 默認配置文件位于~/.jupyter/jupyter_notebook_config.py。

          更改內(nèi)容如下:

          #?將ip設(shè)置為*,允許任何IP訪問
          c.NotebookApp.ip?=?'*'
          #?這里的密碼填寫上面生成的密鑰
          c.NotebookApp.password?=?'argon2:$argon2id$v=19$m=10240,t=10,p=8$ShdM5...vHBHA$EUCjIE1L8joDbugmWIDqLw'
          #?禁止用host的瀏覽器打開jupyter
          c.NotebookApp.open_browser?=?False?
          #?監(jiān)聽端口設(shè)置為8888或其他
          c.NotebookApp.port?=?8888
          #?允許遠程訪問?
          c.NotebookApp.allow_remote_access?=?True

          接下來輸入jupyter lab?就可以啟動 jupyter-lab 服務(wù)啦!

          4. 域名配置

          下面是 JupyterLab 通過 nginx 轉(zhuǎn)發(fā)的一個示例。

          upstream?jupyter?{
          ????server?127.0.0.1:9090;
          }

          server?{
          ????listen?80;
          ????server_name?jupyter.bioitee.com;
          ????rewrite?^/(.*)?https://jupyter.bioitee.com/$1?permanent;
          }

          server{
          ????listen?443?ssl;
          ????index?index.html?index.htm?index.php?default.html?default.htm?default.php;
          ????server_name?jupyter.bioitee.com;
          ????root?/data/apps/jupyterlab/notebooks;
          ????ssl_certificate??????../certs/4564529_jupyter.bioitee.com.pem;
          ????ssl_certificate_key??../certs/4564529_jupyter.bioitee.com.key;
          ????ssl_ciphers?"EECDH?CHACHA20:EECDH?CHACHA20-draft:EECDH?AES128:RSA?AES128:EECDH?AES256:RSA?AES256:EECDH?3DES:RSA?3DES:!MD5";
          ????ssl_protocols?TLSv1?TLSv1.1?TLSv1.2;
          ????ssl_prefer_server_ciphers?on;
          ????ssl_session_cache?shared:SSL:10m;
          ????location?/?{
          ????????proxy_pass????????????http://jupyter;
          ????????proxy_set_header??????Host?$host;
          ????}
          ????location?~?/api/kernels/?{
          ????????proxy_pass????????????http://jupyter;
          ????????proxy_set_header??????Host?$host;
          ????????#?websocket?support
          ????????proxy_http_version????1.1;
          ????????proxy_set_header??????Upgrade?"websocket";
          ????????proxy_set_header??????Connection?"Upgrade";
          ????????proxy_read_timeout????86400;
          ????}
          ????location?~?/terminals/?{
          ????????proxy_pass????????????http://jupyter;
          ????????proxy_set_header??????Host?$host;
          ????????#?websocket?support
          ????????proxy_http_version????1.1;
          ????????proxy_set_header??????Upgrade?"websocket";
          ????????proxy_set_header??????Connection?"Upgrade";
          ????????proxy_read_timeout????86400;
          ????}

          ????access_log??logs/jupyterlab_acc.log;
          ????error_log???logs/jupyterlab_err.log;
          }

          5. 遇到的問題

          1. jupyter lab 啟動的過程中,如果使用--config=~/.jupyter/jupyter_notebook_config.py作為啟動參數(shù)之一,會導(dǎo)致其他的 Conda 環(huán)境在 web 端消失,只剩下一個 Python 3 的 Notebook 和 Console,具體原因目前沒搞明白。

          2. jupyter lab --generate-config默認生成的配置文件位于~/.jupyter/jupyter_notebook_config.py,目前不太清楚如何更改這個默認配置文件的路徑。

          更多閱讀



          有人在代碼里下毒!慎用 pip install 命令


          pip 20.3 新版本發(fā)布!即將拋棄 Python 2.x


          5分鐘快速掌握 scrapy 爬蟲框架


          特別推薦


          程序員摸魚指南


          為你精選的硅谷極客資訊,
          來自FLAG巨頭開發(fā)者、技術(shù)、創(chuàng)投一手消息




          點擊下方閱讀原文加入社區(qū)會員

          瀏覽 39
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色一级片播放视频 | 3欧美性生 | 五月天激情导航 | 视频啪啪网 | 人妖TS福利视频一二三区 |