Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

起動時に「cannot load library 'libsndfile.so'」と出て終了する #770

Closed
1 of 3 tasks
mikan-megane opened this issue Oct 20, 2023 · 8 comments
Closed
1 of 3 tasks
Labels
OS 依存:linux Linux に依存した現象 バグ

Comments

@mikan-megane
Copy link

不具合の内容

arm64環境のdockerでコンテナの起動に失敗する

現象・ログ

Traceback (most recent call last):
File "/home/user/.local/lib/python3.11/site-packages/soundfile.py", line 161, in <module>
    import _soundfile_data  # ImportError if this doesn't exist
    ^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named '_soundfile_data'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/user/.local/lib/python3.11/site-packages/soundfile.py", line 170, in <module>
    raise OSError('sndfile library not found using ctypes.util.find_library')
OSError: sndfile library not found using ctypes.util.find_library

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/opt/voicevox_engine/./run.py", line 17, in <module>
    import soundfile
File "/home/user/.local/lib/python3.11/site-packages/soundfile.py", line 192, in <module>
    _snd = _ffi.dlopen(_explicit_libname)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
OSError: cannot load library 'libsndfile.so': libsndfile.so: cannot open shared object file: No such file or directory

再現手順

(arm64環境で)
docker run --rm voicevox/voicevox_engine:cpu-ubuntu20.04-latest

VOICEVOXのバージョン

0.15.0-preview.8 かな…

OSの種類/ディストリ/バージョン

  • Windows
  • macOS
  • Linux
  • Ubuntu 22.04.3 LTS
  • aarch64

その他

@github-actions github-actions bot added the OS 依存:linux Linux に依存した現象 label Oct 20, 2023
@Hiroshiba
Copy link
Member

おっとなるほどです!! ご報告ありがとうございます!!

仰るとおり #747 関連とみて考えています。手元にarm64 linuxマシンがないので試せませんが・・・。
python環境がある状態でpip install soundfile==0.12.1とするとlibsndfile.soも一緒に降ってくるはずなのですが、arm64環境でそれが来てないのではと思っています。
python-soundfile内に含まれていそうなlibsndfile.soをつくるlibsndfile-binariesにはarm64っぽいものも含まれていそうですが・・・。

とまだ未解決なのですがいったんコメントです!

@Hiroshiba
Copy link
Member

原因はわかりましたが、さてどうしようかという感じでした。

pythonのwheelがある場合はビルド済みのlibsndfileを含める形になっていそうでしたが、arm64 linuxだけwheelが作られてないようでした。
https://pypi.org/project/soundfile/#files

linux arm64のwheelを作るプルリクが4月に開かれているとこまでわかりました。
bastibe/python-soundfile#382

@aoirint
Copy link
Member

aoirint commented Oct 23, 2023

bastibe/python-soundfile#382 側にプルリクエストの修正策をコメントしてみました。進展なければプルリクエストを引き継ぎたい。

Forkレベルでは、aarch64向けのwheel(=arm64向けのwheel)が作れています(bastibe/python-soundfileリポジトリの自動テストは通過しました)。
libsndfile.soの修正が必要( bastibe/libsndfile-binaries#29 )だったので、bastibe/libsndfile-binariesbastibe/python-soundfileの2リポジトリのForkが必要でした。

@Hiroshiba
Copy link
Member

Hiroshiba commented Oct 23, 2023

おおー!!!素晴らしいと思います!!
良い返信が来ると嬉しいですね。

時間かかりそうなら一旦voicevox orgでビルドの仕組み作って管理したり、liux arm64だけaoirintさんのreleasesのwheelに依存したり、とかもありかも。
まあ特に急ぐ予定はないかなという気持ちです。

@Hiroshiba
Copy link
Member

もう1ヶ月経ちましたね!(早い)
python-soundfileのメンテナの方は何か困ってる感じだったら聞いてみるのもいいかも?

ちょっと音沙汰なさそうだったらフォークしてみようと思います!!

@Hiroshiba
Copy link
Member

@mikan-megane 一旦Docker版arm64で該当エラーが出なくなったかと思うので共有です!
(今この瞬間はまだビルド中かもしれません)

@mikan-megane
Copy link
Author

arm64環境でテストし問題ない事を確認できました!
ありがとうございます。

ワークアラウンド対応との事なので、close判定はお任せいたします…

@Hiroshiba
Copy link
Member

おお、良かったです!!!

こちら↓に続きのissueを作りました!このissue自体は解決したので、closeさせていただこうと思います!

@aoirint さん、 @sabonerune さんもありがとうございました!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OS 依存:linux Linux に依存した現象 バグ
Projects
None yet
Development

No branches or pull requests

3 participants