PHP+Python boto3をimportできない


このエラーに1日悩まされたのでとりあえずやったことをまとめておく

問題

boto3をimportできない

まず確認したこと

  • コマンドライン上でならboto3を正常にimport可能
  • Webから(php)からpythonファイルを実行したときimport不可
  • pip show boto3でboto3がインストールされていることは確認済み

なぜphpからの実行ができないのか???

phpとpython 実行ユーザーの違いからboto3 をimportできないのでは。。。?

とりあえず試したこと一覧

  • boto3を誰でも参照できるようにパーミッションを777に変更してみる
    sudo chmod 777 /home/pi/.local/lib/python/site-packages
    -> ✖

  • .bashrcにPYTHONPATHを書き込み-> ✖

  • pythonのコードに直接 sys.path.append(‘/home/pi/.local/lib/python/ite-packages’)と記述
    -> ✖

  • php上でputenv関数を使って環境変数をPYTHON=/home/pi/.local/lib/python(バージョン)/site-packagesと追加
    -> ✖

  • pip install —upgrade boto3で更新してみる
    -> ✖

  • sudo pip show boto3で表示されるlocationのディレクトリを変更
    /home/pi/.local/lib/python/site-packages

    /usr/local/lib/python/dist-packages/

解決策

sudo pip show boto3で表示されるlocationのディレクトリを変更

/home/pi/.local/lib/python/site-packages

/usr/local/lib/python/dist-packages/

phpのなかにputenv(‘/usr/local/lib/python/dist-packages/’)と記述

これはおそらくどのディレクトリ内にboto3がインストールされているかによって指定してやらないといけないということかと。。。

インストール時にもっと気をつけておくべきだったと反省