このエラーに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がインストールされているかによって指定してやらないといけないということかと。。。
インストール時にもっと気をつけておくべきだったと反省