環境設定 数値 文字列 正規表現 リスト タプル 集合 辞書 ループ 関数 クラス データクラス 時間 パス ファイル スクレイピング その他

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 が無難かもしれない。