短縮版
renv
とvenv
をjupyterlab
一緒に使用するシンプルでエレガントな方法は何IRkernel
ですか? 特に、renv
ルート ディレクトリにない jupyter ノートブックから自動的にアクティブ化する方法を教えてください。
ロングバージョン
私は「多言語」データ サイエンス スタイルを採用しています。つまり、python と R の両方を連携して使用します。今venv
はスゴイ、renv
スゴイ、jupyterlab
スゴイので、それらをうまく組み合わせて使うにはどうすればいいのか模索中です。
私はほとんどそれを持っているので、おそらくいくつかのヒントでこのセットアップを完了することができます. ここが私の居場所です。
システム
クリーンな OS から始めて、システム レベルの要件 (R + renv および Python + venv) をインストールします。たとえば、Ubuntu では、おおよそ次のようになります。
# R
sudo apt install r-base
sudo R -e "install.packages('renv')"
# Python
sudo apt install python3.8
sudo apt install python3.8-venv
計画
jupyrenv
ここで、2 つのファイルを含むベアボーン プロジェクトを作成します。
jupyrenv/
├── DESCRIPTION
└── requirements.txt
DESCRIPTION
R の依存関係が含まれています。
Suggests:
IRkernel,
fortunes
requirements.txt
Python の依存関係が含まれています。
jupyterlab
仮想環境を作成し、依存関係をインストールします (順序が重要です。R は python に従う必要があります)。
# Python
python3.8 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# R
R -e "renv::init(bare=TRUE)"
R -e "renv::install()"
R -e "IRkernel::installspec()"
これまでのところ非常にきれいです!
ジュピター
コマンド ラインから jupyter を起動すると、うまくいきます。
jupyter-lab
好きではないことは何ですか?
残念ながら、フォルダーを作成して (たとえばnotebooks
)、そこで R ノートブックを起動すると、機能しません :(
[I 2022-02-23 19:07:24.628 ServerApp] Creating new directory in
[I 2022-02-23 19:07:31.159 ServerApp] Creating new notebook in /notebooks
[I 2022-02-23 19:07:31.416 ServerApp] Kernel started: 0aa2c276-18dc-4511-b308-e78234fa71d4
Error in loadNamespace(name) : there is no package called ‘IRkernel’
Calls: :: ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart
Execution halted
修正を試みる
サブフォルダーからは使用されていないようですので、使用するプロセスをrenv
ヒントする必要があります。サブフォルダーに追加のファイルR
を追加しようとしました:.Rprofile
notebooks
jupyrenv/
├── DESCRIPTION
├── requirements.txt
├── renv
├── venv
├── notebooks
│ ├── .Rprofile
│ └── Untitled.ipynb
├── .Rprofile
└── Untitled.ipynb
以下の内容で:
.Rprofile
:
source("../renv/activate.R")
そして、それはある程度機能しますが、実際には機能しません。notebooks
まず、ディレクトリにR ノートブックを作成しようとすると、新しい が作成されrenv
ます。
[I 2022-02-23 19:22:28.986 ServerApp] Creating new notebook in /notebooks
[I 2022-02-23 19:22:29.298 ServerApp] Kernel started: b40a88b3-b0bb-4839-af45-85811ec3073c
# Bootstrapping renv 0.15.2 --------------------------------------------------
* Downloading renv 0.15.2 ... OK (downloaded source)
* Installing renv 0.15.2 ... Done!
* Successfully installed and loaded renv 0.15.2.
その後、そのjupyterのインスタンスが機能し、使用できますが、再起動すると機能が停止し、欠落しているIRkernel
エラーに戻ります:
[I 2022-02-23 19:24:58.912 ServerApp] Kernel started: 822d9372-47fd-43f5-8ac7-77895ef124dc
Error in loadNamespace(name) : there is no package called ‘IRkernel’
Calls: :: ... loadNamespace -> withRestarts -> withOneRestart -> doWithOneRestart
私は何が欠けていますか?