見出し画像

ロリポップでPythonを動かす時にはまった沼(解決)

ローカルでは問題なかったのに!!

ローカルでは全く問題無く動いたプログラムが、全く動かず、のたうち回っていました。解決したのでメモ。

問題点

SSH経由でファイルをアップロード→タイムアウトで失敗
仕方なくロリポップのFTPでアップロード→スクリプト動かず

私のレベル

ずぶのどしろうと!
だから、参考にする場合は自己責任でお願いしますね。

1、カレンディレクトリの問題で、スクリプトが動かなかった

jsonファイルを使って読み書きするスクリプトだったんですけど、「ファイルが見つからない」ってずっと言われ…
でも、ちゃんとjsonファイルは、スクリプトと同じディレクトリにある。
なんでじゃーーーー!
で、調べに調べて、スクリプトが実行される時のディレクトリは違うということに辿り付きました。

pythonファイルは以下に設置

/home/users/X/lolipop.jp-xx123123123/web/script/python/

しかし、スクリプト内でprint(os.getcwd())実行すると…

/home/users/X/lolipop.jp-xx123123123

なるほど?🤔
スクリプトは、ホームディレクトリ?で、動いているみたい。
なので、全てのaaa.jsonを
/home/users/X/lolipop.jp-xx123123123/web/script/python/aaa.jsonと設定。
ファイル見つかった!\( ᐛ )/
でも…
いかんせん長い。。。

os.chdir('/home/users/X/lolipop.jp-xx123123123/web/script/python/')

これで、aaa.jsonと書いてもちゃんと見つけてくれるようになりましたとさ。(スクリプトの移植性とかは考慮してないです)

パーミッションの設定は以下な感じ(あんまりセキュアじゃないっぽい?)

Jsonファイルのパーミッション:644
pythonスクリプトのパーミッション:755

2、shebangは合ってる??

私、初め全然違うパス書いてました。
たぶん、which pythonで確認しちゃったからだと思う。

#!/usr/bin/python # 古い方だった

which python3.7で確認して、修正。

#!/usr/local/bin/python3.7

誰かのお役に立てれば幸い。

まとめ

結局SSH経由ではファイルをアップロード出来なかったので(timeoutになる)もう少しいろいろと調べ続けてみようと思います。まる。


この記事が気に入ったらサポートをしてみませんか?