複数のpythonバージョンがある場合に、バージョンを指定して実行する
・Pythonで「ImportError: No module named …」が出る このエラーは、インポートしている .pyファイルが見つからないときに出るが pipでインストール済みで、ターミナルで作業している場合にはエラーにならないのになぜ? ■よくあるトラブル例 ・cronでpythonスクリプトを自動実行する場合、期待したバージョンで実行せずエラーになる。 ・apache経由でpythonを実行すると、期待したバージョンで実行せずエラーになる。 ・外部の Python スクリプトを実行しているモジュール名のエラーが発生する pyenvでバージョン管理している場合は気をつける .bashrcなどで記述しているであろうeval "$(pyenv init -)"がcrontabでは実行されていないため、 pyenvにパスが通っていない状態になってしまいます。 そのためpythonはOSプリインストールのpythonで実行されてしまうはずです。 そのため想定したバージョンではpipなどでモジュールをインストールしているのにインポート出来ないなどのトラブルなどがある ■回避例 直接pyenv内のpythonを呼び出し実行する python で実行するのではなく、~/.pyenv/versions/下に格納されている pythonを直接していて実行する ■ターミナルでpythonバージョン指定する場合 pyenv global 3.5.4