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

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

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

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

MacOS(OSX)

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

Python

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

解決済

M1macでsoundfileをimportしたいです

__python.c__
__python.c__

総合スコア13

Python 3.x

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

MacOS(OSX)

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

Python

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

1回答

0リアクション

0クリップ

407閲覧

投稿2022/08/16 06:27

編集2022/08/16 06:29

実現したいこと

M1macでsoundfileをimportしたいです

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

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

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

terminal

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#1>", 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)

試したこと

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

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

jbpb0

2022/08/16 07:06

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

2022/08/16 07:14 編集

違うエラーが出ました
__python.c__

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からログアウトしてからログインしてください
__python.c__

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」をコピーしてください
__python.c__

2022/08/16 07:21

わかりました。少しお待ちください。
__python.c__

2022/08/16 09:05 編集

違うエラーが出ました
__python.c__

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」って書かれてますか?
jbpb0

2022/08/16 10:28 編集

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

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/... のファイルではありません
__python.c__

2022/08/16 10:50

ありがとうございます。
__python.c__

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/... にある実体をコピーしないといけないことを、うっかり忘れてました

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Python 3.x

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

MacOS(OSX)

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

Python

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