2023年5月23日火曜日

JuliaのPyCallとSymPy

Maxima-Jupyterからの続き

Mathematicaの代替となるフリーの数式処理言語として,Maximaが候補にはなったが,やはり何となく使いにくい。Jupyter上のmaximaで終端記号のコロンを忘れるだけで毎回大量のエラーメッセージが出るのにも閉口する。

とすれば,Juliaで数式処理ということになる。標準的な手法としては,Pythonの数式処理モジュールであるSymPyを使えばよいが,先日からPython 呼び出しのPyCallとSymPyがエラーになっている。実害がなかったので放置していたけれど,再度見直してみた。

これまでは,googleで問題解決を図っていたが,必要な情報にたどり着くまではいくつものサイトを渡り歩く必要があった。そこに登場したChatGPTはかなりよい仕事をしてくれるので助かる。問題は,PyCallにあったので,エラーコードを与えて尋ねてみた。
Q:User
Juliaで,PyCallとSymPy がうまく動きません。
例えば,
(中略)
Error building `PyCall`: 
どうしたらいいでしょう。

A:ChatGPT
問題は、おそらく libpython が見つからないために発生しているようです。以下の手順で問題を解決してみてください。

Julia REPLを終了して、再度起動してください。

次に、次のコマンドを実行して、PyCallを再構築し、環境変数を設定してください。
julia
Copy code
ENV["PYTHON"] = "/Users/koshi/.julia/conda/3/bin/python"
import Pkg
Pkg.build("PyCall")

もしまだ問題が解決しない場合、次の手順を試してください。
(中略)
もしまだ問題が解決しない場合、PYCALL_DEBUG_BUILD 環境変数を設定して、デバッグ情報を取得してみてください。
(中略)

これで、エラーが発生している理由に関する追加情報が得られるはずです。その情報を使用して、問題を特定し、解決策を見つけることができます。

SymPyの問題が解決しない場合、まずPyCallが正常に機能していることを確認してください。その後、SymPyの再構築を試みてください。

これらの手順のいずれかが、PyCallとSymPyの問題を解決するはずです。それでも問題が解決しない場合は、エラーメッセージとともに質問してください。

で最初のPYTHON環境変数を /opt/homebrew/bin/python3.11 に置き換えて(だったかな?) なんとかクリアすることができた。

0 件のコメント: