CentOS 7.7のPython 3.7.5にgensimをインストールできない:ModuleNotFoundError: No module named _ctypes
2023.02.18
CentOS Linux release 7.7.1908 に自然言語処理の gensim を pip でインストールしようとすると下のようなエラーが出た。
ModuleNotFoundError: No module named '_ctypes'
_ctypes という名前のモジュールがないというエラーはよく見る。このエラーは Python そのものがインストールできない場合でよく起きるようだが、今回は gensim のインストールだった。
ちなみに Python は pyenv でインストールしている。
エラーが起きた環境:
- pyenv 1.2.15-2-g22c0202
- Python 3.7.5
- pip 19.3.1
- gensim 3.8.1
- CentOS Linux release 7.7.1908 (Core)
結論は CentOS 7.7.1908 と Python 3.7.5 の相性だった。Python 3.7.5 でも、最新の Mac で特に問題はなく gensim をインストールできた。
「OpenSSL のバージョンが古いから _ctypes エラーが起きる」といった記事を見かけたが、OpenSSL のバージョンを適切にしても直らなかった。
結論: Python 3.6.9 を代わりにインストールする
しかし CentOS 7.7.1908 に Python 3.6.9 をインストールすると、きちんと gensim をインストールできた。
ちなみに 2019 年 11 月現在、Python 3.8 に TensorFlow をインストールすることはできない(と思われる)。自然言語処理も含めて、機械学習全般を行うには Python 3.6.9 が無難かもしれない。