2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Mojo🔥でNumpyをcodespaces上で動かしたい!

Last updated at Posted at 2023-09-21

はじめに

Githubのcodespacesを使用して、MojoでNumpyを動かすことを目標とします。
buildなしで実行するとすんなり動くが、buildするとエラーが出てなかなか解決できなかったので、ここに記します。

エラー内容

最初にGithubのcodespacesを立ち上げます。
次に、公式ドキュメントを参考に以下でmojoをインストールしてパスを通します。{MODULAR_AUTH}に自分の値を入れます。 (https://developer.modular.com/download より会員登録をして発行)

curl https://get.modular.com | \
  MODULAR_AUTH={MODULAR_AUTH} \
  sh -
modular install mojo
echo 'export MODULAR_HOME="$HOME/.modular"' >> ~/.bashrc
echo 'export PATH="$MODULAR_HOME/pkg/packages.modular.com_mojo/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

main.mojo

from python import Python

def main():
    let np = Python.import_module("numpy")
    let a = np.array([1, 2, 3])
    print(a)

以下を実行すると、

mojo main.mojo
> [1 2 3]

問題なく動きます。しかし、

mojo build main.mojo
./main
> Mojo/Python interoperability error: Unable to locate a suitable libpython, please set `MOJO_PYTHON_LIBRARY`
Segmentation fault (core dumped)

となり、MOJO_PYTHON_LIBRARを設定しなければなりません。様々なサイトを参考にlibpython3.xx.soのパスを渡せばいいことはわかるも、どこにあるかなかなかわからず。見つけて設定しても別のエラーが、、、

解決方法

設定するPyhtonのバージョンが間違っていました。以下で解決できます。

echo 'export MOJO_PYTHON_LIBRARY="/opt/conda/lib/libpython3.10.so"' >> ~/.bashrc
source ~/.bashrc
mojo build main.mojo
./main
> [1 2 3]

となり、解決できました。

まとめ

以下でNumpyをビルドできる環境構築ができます。

curl https://get.modular.com | \
  MODULAR_AUTH={MODULAR_AUTH} \
  sh -
modular install mojo
echo 'export MODULAR_HOME="$HOME/.modular"' >> ~/.bashrc
echo 'export PATH="$MODULAR_HOME/pkg/packages.modular.com_mojo/bin:$PATH"' >> ~/.bashrc
echo 'export MOJO_PYTHON_LIBRARY="/opt/conda/lib/libpython3.10.so"' >> ~/.bashrc
source ~/.bashrc
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?