Python

concurrent.futuresがimportできないエラー

boto3がimportできるようになった途端、concurrent.futuresがimportできないエラーをはかれました。

そもそもconcurrent.futuresとは?

  • Python3.2で追加されたモジュール
  • 複数の処理を並列実行するための機能を提供している

どこで使われているやつなのか

自分の書いたプログラムでは使ってないということはどこかのパッケージに入っているやつだな〜
ということでエラーからどこで使われているか確認すると、
/usr/local/lib/python3.5/dist-packages/s3transfer/__init__.pyで使われているらしい

なんでimportできないんだ?

確認したこと

  • defaltのpythonのバージョン
 $ Python —version
 $ Python 2.7.13

したがって、python3.2で追加されたモジュールが使えない状態なのか?

もしそうなら、デフォルトのpythonのバージョンを3.5にすれば通るはず!
 
がしかし、Python3としてpython3.5はインストールされているみたいだ。
Python2.7とPython3 両方使えるようにしたんだった。

これじゃあ、解決できなさそう

  • もともとコマンドラインでは動く!けど、php上からは動かない。。。 環境変数の問題??

解決策

futuresをインストールする
pip install futures

[参考]
https://stackoverflow.com/questions/31086530/importerror-no-module-named-concurrent-futures-process
もっと早く見つけたかったな,,,