質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2187閲覧

M1macでsoundfileをimportしたいです

退会済みユーザー

退会済みユーザー

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/08/16 06:27

編集2022/08/16 20:14

実現したいこと

M1macでsoundfileをimportしたいです

発生している問題・エラーメッセージ

Homebrewでlibsndfileをインストールし、pip3でSoundFileをインストールできました。

しかし、import sndfileを実行すると以下のエラーコードが出ます。

terminal

1Traceback (most recent call last): 2 File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/soundfile.py", line 142, in <module> 3 raise OSError('sndfile library not found') 4OSError: sndfile library not found 5 6During handling of the above exception, another exception occurred: 7 8Traceback (most recent call last): 9 File "<pyshell#1>", line 1, in <module> 10 import soundfile 11 File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/soundfile.py", line 162, in <module> 12 _snd = _ffi.dlopen(_os.path.join( 13OSError: cannot load library '/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib': dlopen(/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib, 0x0002): tried: '/Applications/Python 3.10/IDLE3.app/Contents/Frameworks/libsndfile.dylib' (no such file), '/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib' (no such file)

試したこと

libsndfile.dylibは/opt/homebrew/libにありました。
https://github.com/bastibe/python-soundfile/issues/310 でM1Macでlibsndfileをインストールすることについて言及していますが、英語で読みづらく、わかりません。

補足情報(FW/ツールのバージョンなど)

macOS Monterey 12.5
MacBook Pro(16インチ、2021)

python3.10.6

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2022/08/16 07:06

> libsndfile.dylibは/opt/homebrew/libにありました。 「~/.zshrc」の一番下に export DYLD_LIBRARY_PATH="/opt/homebrew/lib:$DYLD_LIBRARY_PATH" を追記して、一旦macからログアウトしてからログインしたら、どうでしょうか?
退会済みユーザー

退会済みユーザー

2022/08/16 07:14 編集

違うエラーが出ました
退会済みユーザー

退会済みユーザー

2022/08/16 07:14

``` Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/soundfile.py", line 142, in <module> raise OSError('sndfile library not found') OSError: sndfile library not found During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<pyshell#0>", line 1, in <module> import soundfile File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/soundfile.py", line 162, in <module> _snd = _ffi.dlopen(_os.path.join( OSError: cannot load library '/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib': dlopen(/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib, 0x0002): tried: '/Applications/Python 3.10/IDLE3.app/Contents/Frameworks/libsndfile.dylib' (no such file), '/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib' (no such file) ```
jbpb0

2022/08/16 07:19 編集

/opt/homebrew/lib/libsndfile.dylib を、下記のどちらかにコピーしたら、どうでしょうか? /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data /Applications/Python 3.10/IDLE3.app/Contents/Frameworks 試す前に、「~/.zshrc」への追記は削除して、macからログアウトしてからログインしてください
退会済みユーザー

退会済みユーザー

2022/08/16 08:39 編集

/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/に_soundfile_dataというディレクトリがありませんでした。
jbpb0

2022/08/16 07:21 編集

/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages に「_soundfile_data」という名前のディレクトリを作って、その中に「libsndfile.dylib」をコピーしてください
退会済みユーザー

退会済みユーザー

2022/08/16 07:21

わかりました。少しお待ちください。
退会済みユーザー

退会済みユーザー

2022/08/16 09:05 編集

違うエラーが出ました
退会済みユーザー

退会済みユーザー

2022/08/16 09:05

Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/soundfile.py", line 142, in <module> raise OSError('sndfile library not found') OSError: sndfile library not found During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/soundfile.py", line 162, in <module> _snd = _ffi.dlopen(_os.path.join( OSError: cannot load library '/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib': dlopen(/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib, 0x0002): tried: '/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib' (no such file)
jbpb0

2022/08/16 09:06

エラーメッセージに「no such file」って書かれてますか?
退会済みユーザー

退会済みユーザー

2022/08/16 09:07

書いてあります
jbpb0

2022/08/16 10:28 編集

ターミナルで下記を実行した結果を教えてください (ユーザー名等の個人情報は伏せ字で) ls -l /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data
退会済みユーザー

退会済みユーザー

2022/08/16 10:30

total 0 lrwxr-xr-x 1 ユーザー名 admin 47 8 13 13:43 libsndfile.dylib -> ../Cellar/libsndfile/1.1.0/lib/libsndfile.dylib
jbpb0

2022/08/16 10:40

現在 /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data にある「libsndfile.dylib」(コピーしたもの)を削除してください もし /Applications/Python 3.10/IDLE3.app/Contents/Frameworks にも「libsndfile.dylib」をコピーしてたら、それも削除してください それから、 /opt/homebrew/Cellar/libsndfile/1.1.0/lib/libsndfile.1.dylib を /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data にコピーして、ファイル名を「libsndfile.1.dylib」から「libsndfile.dylib」に変えてください ファイル名を変えるのは、 /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data にコピーしたファイルです /opt/homebrew/... のファイルではありません
退会済みユーザー

退会済みユーザー

2022/08/16 10:50

成功しました!
退会済みユーザー

退会済みユーザー

2022/08/16 10:50

ありがとうございます。
退会済みユーザー

退会済みユーザー

2022/08/16 10:59

回答欄に入力してください。
jbpb0

2022/08/16 11:00

> libsndfile.dylibは/opt/homebrew/libにありました。 /opt/homebrew/lib にあるのはシンボリックリンク(ls -lの結果の一番左が「l」)で、それをコピーしても実体がコピーされるわけではないので、 /opt/homebrew/Cellar/... にある実体をコピーしないといけないことを、うっかり忘れてました
guest

回答1

0

ベストアンサー

cannot load library '/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_soundfile_data/libsndfile.dylib'

libsndfile.dylibは/opt/homebrew/libにありました。

/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages
に「_soundfile_data」という名前のディレクトリを作って、その中に
/opt/homebrew/Cellar/libsndfile/1.1.0/lib/libsndfile.1.dylib
をコピーして、ファイル名を「libsndfile.1.dylib」から「libsndfile.dylib」に変えてください

参考
Python3 soundfile doesn't work on macOS/M1 #444

投稿2022/08/16 11:13

jbpb0

総合スコア7651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2022/08/16 11:14

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問