Python の oscrypto で LibraryNotFoundError の発生とその対処
こんにちは、 @kz_morita です。
Python 周りの環境を構築したりしているなかで、 oscrypto で以下のようなエラーが発生しました。
oscrypto.errors.LibraryNotFoundError: Error detecting the version of libcrypto 上記エラーのの原因調査と回避方法についてまとめます。
原因 原因は以下の Issue にかかれています。
https://github.com/wbond/oscrypto/issues/75 https://github.com/wbond/oscrypto/issues/78 oscrypto ライブラリから、OpenSSL の 3.0.10 以降のバージョンを認識できないことが原因です。
実装自体は以下の Pull Request で解消されています。
https://github.com/wbond/oscrypto/pull/76/files ↓コードが openssl のライブラリを正規表現で判定するところですが、1桁しか判定できないようになっていたっぽいです。
version_match = re.search('\\b(\\d\\.\\d\\.\\d[a-z]*)\\b', version_string) master ブランチにはすでにマージされていますが、まだ PyPI にはリリースされていないので、pip install で最新版はインストールできません。
回避方法 回避方法としては、github の master ブランチの commit hash を指定して pip install すれば大丈夫です。
requiments.txt を使っている場合は以下のようにして特定の hash の commit を指定できます。