どうも、solobochiのbochiです。
昨年、python仮想環境構築についてまとめましたが、突然LightGBMが動かなくなって改めて仮想環境の構築をやり直したりしたのでノウハウを落としておきます。
目次
1.何が起きたのか
久しぶりにLightGBMでモデル構築をしようとimportしたところ、エラーとなりました。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
import lightgbm 〜〜 >>Traceback (most recent call last): 中略 OSError: dlopen(/Users/{ユーザー名}/〜/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/gcc/lib/gcc/8/libgomp.1.dylib Referenced from: /Users/{ユーザー名}/〜/python3.6/site-packages/lightgbm/lib_lightgbm.so Reason: image not found |
👉ざっくりこんな感じでエラーとなりました。
2.試したこと
いろいろ調べていろいろ試しました。
一度アンインストールしてインストールし直す。
1 2 3 |
pip uninstall lightgbm |
すると、これもエラーになる↓
1 2 3 |
pip is configured with locations that require TLS/SSL〜〜 |
👉SSLのエラーとあるので証明書関係かと思い、opensslを再インストール。
1 2 3 4 5 |
brew install openssl brew reinstall openssl brew upgrade openssl |
👉しかし改善せず。
xcodeのバージョンアップで改善したとの記事もあったが、そもそも自分はxcodeをいれていないので関係なし。
ということで万事休す。
諦めて、いよいよpythonのバージョンをあげて仮想環境を構築し直すことに。
3.解決方法
結論、pythonのバージョンアップと再インストール、及び仮想環境の再構築で解決しました。
1 2 3 4 5 |
python -V #現在のpythonバージョン確認 >>python 3.6.6 |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
pyenv install -list #インストール可能なpythonバージョン一覧取得 >>2.1.3 〜〜 >>3.6.10 〜〜 >>3.7.7 〜〜 >>3.8.2 〜〜 >>3.9-dev |
ということで、3.7バージョンの最新版3.7.7を入れることに。
1 2 3 4 5 6 7 8 9 10 |
pyenv install python3.7.7 pyenv versions #インストール済みのpythonバージョン一覧の確認 >>system >>❇︎3.6.6 >>3.7.7 >>env-3.6.6 |
👉仮想環境も一覧に出てくる
👉現在採用しているバージョンに❇︎がついている
採用するバージョンを変更する。
1 2 3 4 5 6 7 8 9 |
pyenv global 3.7.7 pyenv versions >>system >>3.6.6 >>❇︎3.7.7 >>env-3.6.6 |
👉これで3.7.7が採用されるように変更することができた。
いよいよ仮想環境を再構築してLightGBMを再インストールしていく。
1 2 3 4 5 6 7 8 9 10 |
virtualenv -p python3.7.7 env2-3.7.7 #-p指定して仮想環境構築することでpythonバージョンを指定することができる ls >>env2-3.7.7 cd env2-3.7.7 ls >>bin lib pyvenv.cfg |
👉virtualenvで仮想環境を作成することで指定した環境名のディレクトリ及びファイルが自動作成される
では、仮想環境を起動する。
1 2 3 4 5 |
virtualenvs$ source env2-3.7.7/bin/activate >>(env2-3.7.7)virtualenvs$ |
そして、起動した仮想環境内においてライブラリをインポートする。
1 2 3 4 5 |
import lightgbm pip list |
バッチリ入りました。
ちなみに仮想環境の停止は、以下コマンド。
1 2 3 |
(env2-3.7.7)virtualenvs$ deactivate env2-3.7.7 |
ー
以上