今までAppleのDeveloper Toolsをインストールしたときに入るPython 3.9を使っていたのですが、昨日brew upgrade
したあとインストールしてたモジュールが動かないのでなんでかなと思ったら、python3バイナリが3.9.xじゃなくて3.11.xに置き換わっていました。
折角の機会だし、Python 3.10よりも高速化されてエラーがよりわかりやすくなったらしいですしPython 3.11を使ってみるかと思って、普段使っているPythonモジュールをpipでインストールしてみました。Python 3.9の方はもう使わないと思うので、モジュールは削除済みです。
% python3.11 -m pip install ~/requirements.txt
そして、次のような感じでJupyter Labを起動しようとしたのですが...
% nohup jupyter lab --notebook-dir ~/working/notebook &
次のようなエラーがブラウザーに表示されました。
JupyterLab Error JupyterLab application assets not found in "/opt/homebrew/Cellar/python@3.11/3.11.2/Frameworks/Python.framework/Versions/3.11/share/jupyter/lab" Please run `jupyter lab build` or use a different app directory
起動ログにも同じ内容が書かれています。
[I 2023-02-18 16:44:39.880 LabApp] JupyterLab application directory is /opt/homebrew/Cellar/python@3.11/3.11.2/Frameworks/Python.framework/Versions/3.11/share/jupyter/lab [E 2023-02-18 16:44:39.880 LabApp] JupyterLab application assets not found in "/opt/homebrew/Cellar/python@3.11/3.11.2/Frameworks/Python.framework/Versions/3.11/share/jupyter/lab" [E 2023-02-18 16:44:39.880 LabApp] Please run `jupyter lab build` or use a different app directory
AppleのDeveloper Tools提供のPython 3と各種パスが色々と違うので、そこらへんが原因なんでしょうね。
素直にjupyter lab build
を実行すると色々出てきて、かえって混乱しますね。しまいには、Node.jsとnpmをインストールしてくれって言われます。別に今はNode.jsを使うつもりはないんですけど。
% jupyter lab build [LabBuildApp] JupyterLab 3.6.1 [LabBuildApp] Building in /opt/homebrew/Cellar/python@3.11/3.11.2/Frameworks/Python.framework/Versions/3.11/share/jupyter/lab Build failed. Troubleshooting: If the build failed due to an out-of-memory error, you may be able to fix it by disabling the `dev_build` and/or `minimize` options. If you are building via the `jupyter lab build` command, you can disable these options like so: jupyter lab build --dev-build=False --minimize=False You can also disable these options for all JupyterLab builds by adding these lines to a Jupyter config file named `jupyter_config.py`: c.LabBuildApp.minimize = False c.LabBuildApp.dev_build = False If you don't already have a `jupyter_config.py` file, you can create one by adding a blank file of that name to any of the Jupyter config directories. The config directories can be listed by running: jupyter --paths Explanation: - `dev-build`: This option controls whether a `dev` or a more streamlined `production` build is used. This option will default to `False` (i.e., the `production` build) for most users. However, if you have any labextensions installed from local files, this option will instead default to `True`. Explicitly setting `dev-build` to `False` will ensure that the `production` build is used in all circumstances. - `minimize`: This option controls whether your JS bundle is minified during the Webpack build, which helps to improve JupyterLab's overall performance. However, the minifier plugin used by Webpack is very memory intensive, so turning it off may help the build finish successfully in low-memory environments. An error occurred. ValueError: Please install Node.js and npm before continuing installation. You may be able to install Node.js from your package manager, from conda, or directly from the Node.js website (https://nodejs.org). See the log file for details: /var/folders/mq/961qzxqx47931tnnpblf6wfr0000gn/T/jupyterlab-debug-rkpmmygw.log
こちらを見つけました。Pythonのバージョンは異なりますが、Homebrew版のPython 3を使っているという点では一緒です。 やはり困ったときのStackoverflowですね。
つまり、--app-dir
でアセットのパスを指定すれば良いということですね。これできちんとJupyter Labの画面が開きました。
% nohup jupyter lab --app-dir /opt/homebrew/share/jupyter/lab --notebook-dir ~/working/notebook &
ところで、その前に見つけたこの質問者は解決できたんだろうか。