Amazon Linux AMIにPython3系をインストール
Publish date: Mar 20, 2020Tags: python
Table of contents
Pixela × GA cronの中身が置いてあるGitHubリポジトリです。
こちらのcronがうまく実行できていなかったので
まずは手動で実行してみて
何のerrorが出るかを確認して対処しました。
日付を指定して実行
日付を指定して実行するには
コメントのように書き直します。
参照: datetime — 基本的な日付型および時間型 — Python 3.8.2 ドキュメント
def main():
analytics = initialize_analyticsreporting()
yesterday = date.today() - datetime.timedelta(days=1)
# yesterday = datetime.date(2020, 2, 24) # 日付を指定して実行する場合
response = get_report(analytics, yesterday)
手動実行してerrorの確認
サーバーにログイン後
登録されているcron一覧を表示します。
# crontab -l
0 2 * * * cd /opt/wp-pixela && python3 google_analytics_access.py
試しに手で実行してみました。
# cd /opt/wp-pixela && python3 google_analytics_access.py
-bash: python3: command not found
errorの原因
python3が無いっぽい。
参照: Python3.6 インストール on Amazon Linux AMI - Qiita
# which python3
/usr/bin/which: no python3 in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin)
pythonはある。
# which python
/usr/bin/python
バージョンが
2.7.16なので直します。
# python -V
Python 2.7.16
Amazon Linux 2 では無いことを確認します。
# cat /etc/system-release
Amazon Linux AMI release 2018.03
インストール可能なPythonのバージョンを、新しいものから順に確認してみます。
# yum list | grep python38
# yum list | grep python37
# yum list | grep python36
mod24_wsgi-python36.x86_64 3.5-1.25.amzn1 amzn-updates
python36.i686 3.6.10-1.16.amzn1 amzn-updates
python36.x86_64 3.6.10-1.16.amzn1 amzn-updates
python36-bcc.x86_64 0.6.0-5.2.amzn1 amzn-updates
python36-bcc.noarch 0.10.0-1.1.amzn1 amzn-updates
python36-debug.i686 3.6.10-1.16.amzn1 amzn-updates
python36-debug.x86_64 3.6.10-1.16.amzn1 amzn-updates
python36-devel.i686 3.6.10-1.16.amzn1 amzn-updates
python36-devel.x86_64 3.6.10-1.16.amzn1 amzn-updates
python36-libs.i686 3.6.10-1.16.amzn1 amzn-updates
python36-libs.x86_64 3.6.10-1.16.amzn1 amzn-updates
python36-lit.noarch 0.5.1-1.0.amzn1 amzn-updates
python36-pip.noarch 9.0.3-1.27.amzn1 amzn-updates
python36-setuptools.noarch 36.2.7-1.33.amzn1 amzn-main
python36-test.i686 3.6.10-1.16.amzn1 amzn-updates
python36-test.x86_64 3.6.10-1.16.amzn1 amzn-updates
python36-tools.i686 3.6.10-1.16.amzn1 amzn-updates
python36-tools.x86_64 3.6.10-1.16.amzn1 amzn-updates
python36-virtualenv.noarch 15.1.0-1.14.amzn1 amzn-main
python3.6をインストールすることにしました。
Python3.6をインストール
# yum -y install python36-devel python36-libs python36-setuptools
確認してみた。良さそう。
# python -V
Python 2.7.16
# python3 -V
Python 3.6.10
pip3が入っていなさそうなので入れます。
# pip --version
pip 9.0.3 from /usr/lib/python2.7/dist-packages (python 2.7)
# pip3 --version
-bash: pip3: command not found
# python3 -m ensurepip --upgrade
python3で実行してみました。
# cd /opt/wp-pixela && python3 google_analytics_access.py
Traceback (most recent call last):
File "google_analytics_access.py", line 5, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
requestsモジュールを入れ忘れている。
とりあえず全部入れます。
# pip3 install google-api-python-client oauth2client requests python-dotenv
再度、実行してみます。
# cd /opt/wp-pixela && python3 google_analytics_access.py
できました👏