まだタイトルない

アウトプット用です

sndfile.dll' has no function, constant or global variable named 'sf_wchar_open'の直し方自分用メモ

こんにちは。

先日、pythonでmp3をwavに変換したいということで色々戦いました。
ffmpegをインストールしてもうまく動かずに後先考えずにいろいろ試した結果タイトルのようなエラーが直せなくなりました。諦めても良かったのですがもともと動いてた学習用のプログラムすら動かなくなったのでこれはまずいと言うことでこれまた色々試した結果直りましたので、今回は最終的に直った方法を自分用にメモとして残します。

ここで言う"直った"は学習用コードを動くようにし、mp3->wavへの変換は動かない状態で、諦めるということです。

はじめに

はじめてのトラブルシューティングの記事なのでお手柔らかにお願いします。

本題

大まかな手順は

  1. 容疑者を全部アンインストール
  2. インストールし直す

環境

  • windows10
  • anaconda
  • python3.7.7

消したパッケージ

audioread                 2.1.8            py37hc8dfbb8_2    conda-forge
ffmpeg-python             0.2.0                    pypi_0    pypi
librosa                   0.8.0              pyh9f0ad1d_0    conda-forge
libsndfile                1.0.29               ha925a31_0    conda-forge
llvmlite                  0.32.1                   pypi_0    pypi
numba                     0.43.0                   pypi_0    pypi
pysoundfile               0.9.0.post1              pypi_0    pypi
soundfile                 0.10.2                     py_0    bricew

いろいろな都合でcondaで入れたものやpipで入れたものが混在してたので、それに合わせてconda uninstallpip uninstallで綺麗に掃除。

パッケージのインストール

pip install librosaでlibrosaを入れたら色々必要なものは入ってきて結果的に直りました。 condaでlibrosaを入れようとするとnumbaやllvmliteが最新になっちゃうのでpipで入れましたが結局色々入っちゃうのでcondaでも同じかもしれない。メモが至らずaudioreadsoundfileが自分で入れたかついてきたかが不明

# Name                    Version                   Build  Channel
audioread                 2.1.8                    pypi_0    pypi
librosa                   0.8.0                    pypi_0    pypi
llvmlite                  0.34.0                   pypi_0    pypi
numba                     0.51.2                   pypi_0    pypi
soundfile                 0.10.3.post1             pypi_0    pypi

おまけ

sndfileを公式サイトからインストールして、dllを置き換えるという解決方法が英語サイトであったので試してみたのですが、治らずでした。