Conoha Wing上でPython実行(2)

レンタルサーバー

こんばんは。はーどこあです。
レンタルサーバー上でPythonプログラムを実行するための手順です。

venvの仮想環境下では問題なくpip install でライブラリーをインストールできますが、
通常の環境下でpip installを実行すると、pip のインストール先が管理者権限が必要なディレクトリ(/usr
であるため、エラーで先に進めません。CRONでPythonプログラムを実行するには、通常の環境下にライブラリー
をインストールしなければなりませんので、何とかして権限のあるディレクトリにインストールする必要があります。

その方法ですが、pip installの際に(--user)オプションを追加すればよいです。ユーザーのホームディレクトリ以下にインストールされます。

 pip install --user {パッケージ名}

pipでインストールしたパッケージのディレクトリを追加してあげる必要があります。今回は実行プログラムを置いたディレクトリ内の–userディレクトリにインストールしたので下記のような一文を追加しました。

import sys,os
sys.path.append(os.path.join(os.path.dirname(__file__),'--user'))

これでいけるかなと思ったんですが、下記のような日本語の文字コードエラーが出てしまいました。

UnicodeEncodeError: 'ascii' codec can't encode characters

色々調べたのですがエンコードをutf-8にすればよいようです。次のおまじないを追加。

sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')

ようやく、レンタルサーバー上でPythonを実行できました。