以下の内容はhttps://ujimushisradjp.hatenablog.jp/entry/2024/12/17/203207より取得しました。


Help debugging problem with Pluto notebook[勝手に回答]

今回勝手に回答するのは「Help debugging problem with Pluto notebook」, Julia Discourseからの質問です。

問題としては,次のコードをPluto上で動かした時エラーで動かなくなる, というものです。

import Pkg
Pkg.activate()
using Plots, PlutoUI, BenchmarkTools, DataFrames, Dates,  Revise, myFuncs

解決方法

実は,結構最初から私としては解決方法は予測できました。

バージョン1.10以降はPkgパッケージが外部パッケージになっていて, Pkgを使う時には事前にaddしておかないとうまくいかないケースがあります。

つまり次のようにパッケージモードに入ってPkgをaddしておけばOKです。

(@v1.11) pkg> add Pkg
   Resolving package versions...

確認方法としてはPkg statusの中にPkgが表示されていればOKです。

(@v1.11) pkg> status
Status `~/.julia/environments/v1.11/Project.toml`
  [6e4b80f9] BenchmarkTools v1.5.0
  [336ed68f] CSV v0.10.15
  [a8cc5b0e] Crayons v4.1.1
  [a93c6f00] DataFrames v1.7.0
  [28b8d3ca] GR v0.73.9
  [5fb14364] OhMyREPL v0.5.28
  [91a5bcdd] Plots v1.40.9
  [c3e4b0f8] Pluto v0.20.3
⌃ [7f904dfe] PlutoUI v0.7.23
  [295af30f] Revise v3.6.4
  [44cfe95a] Pkg v1.11.0
Info Packages marked with ⌃ have new versions available and may be upgradable

実行例は次のような感じ。

なお,他の環境をactivateする時は,その環境にPkgを追加する必要があります。

すなわち,以下のコードをPluto上で実行させたい場合は~/test環境にPkgが追加されている必要があります。

begin
    import Pkg
    Pkg.activate("~/test")
end

すなわち

(@v1.11) pkg> activate ~/test
  Activating project at `~/test`

(test) pkg> add Pkg
   Resolving package versions...

のような感じで,Pkgをあらかじめ追加するとエラーが無くなるという感じです。

OhMyREPL関係で知ったような気がしていて,自分の過去のブログを見たけど特に何もありませんでした。いや探し方いいい加減だからかもしれませんが…

特に迷いなく解決策にたどり着いたのは,さすが体育会系コード書きたくない系エセプログラマだからでしょうか?

追記

理由を思いだしました。EmacsでLanguageServer.jlをeglot-jl経由で利用する時,標準モジュールでもaddしておかないとうまく認識してくれないので,ローカル環境を作ってなるべくaddしておくことが大事だと,なんとなく思っていたからだと思います。

追々記

確実に上記のコードを実行させるためには, PlutoのREPL上での立ち上げ時に

using Pkg, Pluto
Pluto.run()

しないといけないようでした。

using ...は2回目はモジュールをロードしない,というのを利用したバッドノウハウですね。

再試行

MyEnvdev MyPkgしてMyPkgを追加し,さらにadd Pkgしておいた環境があって, REPLから

using Pkg, Pluto
Pluto.run()

で立ち上げます。

で次のノートブックを実行すると…

うまくMyPkgが読み込めたようです。

元記事はともかく,issueとかただの言いがかり。 動かなくなるように議論が進んでいっているので,私は相手にしないことにしました。

「後は勝手にやってください」という感じです。




以上の内容はhttps://ujimushisradjp.hatenablog.jp/entry/2024/12/17/203207より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14