lolipopサーバーでpythonを実行できないときに確認すること(SSH不要)
lolipopサーバーでpythonを実行しようと思って、.pyファイルをアップロードしました。
が、何回かエラーで躓いたので、その時の対処方法を記載します。
ネットで検索するとSSHを使わないといけないという記事がたくさん出てきますが、SSHを使わなくても解決できました。
以下、順番に確認していただくとよいと思います。
1. パーミッション設定、バージョン指定する
以下のようなエラーが出たときは、パーミッションの設定忘れだと思います。
パーミッション設定
PCのFTPクライアントでも、lolipopのFTPクライアントでもいいですが、
.pyファイルのパーミッションを「700」に設定します。(実行権限を付けます)
Pythonのバージョン指定
あと、プログラムの先頭に以下を記述します。
#!/usr/local/bin/python3.7
Pythonのバージョンについては、以下を参照してください。
上記の画像のエラーについては、これで解決できました。
2. Pythonのライブラリをインストールする
上記の1.でPythonファイルの実行自体はできるのですが、Pythonでimportしているライブラリが不足していてエラーになることがあります。
cronの実行結果に
ModuleNotFoundError: No module named ‘linebot’
のようなエラーが返ってきます。
この場合、ライブラリをインストールする必要があります。
ただ、これもSSH無しでできます。
以下のサイトがとても参考になりました。
サーバー上で使用できるPythonのバージョンについては、以下を参照してください。
これで実行に必要なライブラリをインストールしてください。
私はよくわかってないのですが、pip installの前に「-m」を付けないとうまくできませんでしたので、以下のように各ライブラリをインストールしました。
/usr/local/bin/python3.7 -m pip install requests
これで、ライブラリのインポートができて実行できるようになると思います。
3. その他のエラー
以下のエラーは別のページにまとめてあります。
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the ‘ssl’ module is compiled with ‘OpenSSL 1.0.2k-fips
まとめ
ネットで調べると、SSH接続して実行環境を作るためにSSHができる高いプランにしないといけないという記事がいくつかありましたが、SSHを使わなくてもできたので、先にこちらを試すといいですね。