初期設定
こちらをご覧ください。
XserverでPythonを実行(初期設定)
Cronとは
Xserverでどうにか自動化できないか調べたところ
「Cron(クローン)」というのを見つけました。
Cronとは、
指定時間に指定コマンド(プログラム)を
自動的に実行させるサーバーの機能です。
TwitterにツイートするコードをPythonで書いたので、
それを自動化するためファイルをXserverに置いて、
cronで時間を指定して、自動コマンド実行できるようにしました。
Cronの設定
サーバーパネルへログインし、「→Cron設定」をクリックします。
Cron設定追加をクリック
設定を追加しましょう。
Cron設定例
(毎日22時に1回)
分 :0
時間:22
日 :*
月 :*
曜日:*
コマンド:/usr/bin/python3 /home/サーバーID/独自ドメイン名/public_html/python/tweet-bot/test_run.py
(1時間に1回)
分 :0
時間:*
日 :*
月 :*
曜日:*
コマンド:/usr/bin/python3 /home/サーバーID/独自ドメイン名/public_html/python/tweet-bot/test_run.py
入力したら「確認画面へ進む」をクリックしましょう。
確認して問題なければ「追加する」をクリックしましょう。
あとは、指定の時間通りに動いてくれるはずです。
ModuleNotFoundErrorが発生
これですごい困りました。
ローカルでは動くのになぜかCronにすると動かない現象がおきました。
logも出していなかったので、なぜエラーになったのかも分からず
ただただ動かないという謎現象で悩みました。
コマンドで実際に
$ /usr/bin/python3 /home/サーバーID/独自ドメイン名/public_html/python/tweet-bot/test_run.py
入力してエラー原因がわかりました。
エラー原因は「/usr/bin/python3」が
pipを必要とするパケージ類を
持っていないことが原因(ModuleNotFoundError)でした。
スマートな解決方法は分からずでしたが、
無理やりですが、解決した方法をお教えします。
ModuleNotFoundError解決方法
コマンドのパスを
$ /home/サーバーID/.local/share/virtualenvs/tweet-bot-sT2xpPeZ/bin/python3 /home/サーバーID/独自ドメイン名/public_html/python/tweet-bot/main.py
とすることで、動きました!
.local/share/virtualenvs/プロジェクト名/bin/python3
こちらのPython3を使用することで、解決しました。
ModuleNotFoundErrorが
出て困っている方がぜひこちらの記事で解決できてお役に立てれば幸いです。
もし、スマートな解決方法を知っている方は教えていただけましたら幸いです。
では、良き自動化ライフをお楽しみください。
Cronを使用して動いているツイッターBot
実際にCronを使用して稼働させています。
英会話を自動でツイートしてくれます。
1時間に1回(0分)になったら、
Cronがコマンドを自動実行してくれて、ツイートしてくれます。
フォロワーが少ないので、ぜひフォローしてください。そうしていただけますと嬉しいです!
コメント