きっかけ
前回の記事でもともと持っていた疑問点は解決したが,それを踏まえて新たにディレクトリを作ったところno module named 'requests'
というエラーが出て動かなかった.そこでプログラミングが得意な弊研究室の後輩たちに相談したら30分ほどで解決したので記事にする.結局パスの問題だった.
前提
以下の2記事を見てきた人へ向けて
今回やること
1. 環境確認パート
2. 解決パート
3. 意味のなかったこと
4. お知らせ
1.環境確認パート
pip install requests
の結果は要約するとpipの新しいバージョンが存在するってことと[notice] To update, run: python3.9 -m pip install --upgrade pip
ということが返ってきたがあんまり関係なさそう.
次にrequestsモジュールが存在する場所,Locationを確認する.
pip show requests
の結果,NameとかVersionとかが返ってくる.pip install requests
した後なら必ず返ってくると思う.結果の中のLocation:/hoge/hogehoge
というのを後で使う.
ここで一旦,前回の記事や各々のディレクトリ構成を参考にして
python3 ./line_api/line.py
を実行してみてやはりno module named 'requests'
となることを確認する.実際ここまでやったことは環境の確認だけで解決は次のパートからになる.
2.解決パート
.zshrc
でPython3のパスが通っていることは前提とする.
もはやおなじみのcrontab -e
と入力し出てくる画面に1文を追加したことが実質的な解決策になった.
PYTHONPATHの後ろにさっき調べたLocation
の中身を記述する.
# 必要なのはrequestsライブラリがあるところを教えること
PYTHONPATH=/hoge/hogehoge
0 6 * * * python3 /Users/hoge1/line_api/line.py
再び
python3 ./line_api/line.py
をやると今度は動くようになっていると思う.
3.意味のなかったこと
さっきのLocation
の中身を
vi .zshrc
で開いた先にexport PYTHONPATH="/hoge/hogehoge:$PYTHONPATH"
というように記述して
source .zshrc
で設定適用してみたが,なにも変わらなかった.Location
の中身を記述するファイルはcrontab -e
のファイルだった.
(2023/7/19追記)
別のモジュールで同じようなことが起こって.zshrc
にexport PYTHONPATH="/hoge/hogehoge"
と書いて動くようになったのでこれも同様に動くかもしれない.
4.お知らせ
諸事情により,この自動化システムをこれ以上発展させることはない.さらに動かすこともやめた.このシリーズの更新ももうない.
(2024/11/13追記)
LINE Notifyがサービス終了するらしい.インターンでの開発に用いたMessaging APIで代替することができるので作ってもいいけど上記の通りもう動かしてないしなぁ…….
参考文献
この記事は以下の情報を参考にして執筆しました。
- 研究室の後輩たち