こんにちは。
それではCentOSにPythonの実行環境を構築していきます。CentOS7.5にはデフォルトでPythonがインストールされているのですが、バージョンがPython2.7.5です。私が普段Windowsで使用しているのはPython3なのでこのままでは環境が揃いません。Python2系とPython3系は一部互換性がなく、これから学習するには間違いなくPython3をやるべき!とどの参考書にも書かれていたので、そもそもPython2は勉強したことがありません。
さてどうしたものかと色々と調べた結果、Python3.3から公式でサポートしているvenvを使用することにしました。これはPythonの仮想環境をサポートしてくれるツールで、仮想的にパッケージをインストールできるので、デフォルトであるPython2.7.5の環境に影響を与えることがないそうです。以下の記事を参考にしました。
DjangoはPythonのWebフレームワークですが、まだ使い方を勉強していないのでインストールしません。(ゆくゆくは学びたいです)
次はWindows10で作成したpyファイルをCentOS上にSCPでコピーして実行してみます。WindowsとLinuxの文字コードの違いにより文字化けがよく発生しますが、もともとUTF-8を使用してファイルを作っていたのでCentOSには変換なしでそのまま移すことができました。(というかPython3はデフォルトがUTF-8とのこと)で、エンコーディング宣言もしていません。以下をご参考に。
テストのpyファイルを実行する前に仮想環境をアクティベートして、必要なライブラリをインストールしておきましょう。
1 |
(venv) $ |
1 |
(venv) $ pip install --upgrade pip |
1 |
(venv) $ pip install beautifulsoup4 |
1 |
(venv) $ pip install requests |
これでPython3の実行環境で動くはず。
1 |
(venv) $ python test.py |
さらにこのファイルを定期的に実行したいのですが、venvをアクティベートしてから実行するためシェルスクリプトを組みます。以下を参考にしました。
ドンピシャの記事でとても参考になりました。(学生時代Linuxは触っていましたがシェルスクリプトはほとんどいじったことなかったんですよね~ 汗)
/home/username/venv/test.sh のシェルスクリプトを作ったとします。
あとは定期実行プログラムですが、なんか色々あるなぁ!!わけわからん
で結局、ユーザーで実行するcrontab -eで設定ファイルを書きました。以下の設定では00分(つまり1時間ごと)に実行されます。
1 |
00 * * * * /home/username/venv/test.sh |
ひとまず定期実行までできました。