シン・レンタルサーバーでPythonの仮想環境を作成してpipを使う
当サイトが利用しているシン・レンタルサーバーは2022年10月時点で Python 2.7.5、3.4.10、3.6.8 が使用可能となっていますが、レンタルサーバー故に権限の問題からそのままではpipは使用できません。pip3コマンドはありますが、残念ながらinstall等では以下のような結果になります。
PermissionError: [Errno 13] 許可がありません: '/etc'
--userオプションを付けても結果は変わりませんでした。
そこで、Pythonの仮想環境を作成し、get-pip.pyでpipをインストールすることにしました。AnacondaやMinicondaでも良いとは思いますが、今回は目的がpipを使用可能な状態にすることのみなのでそれらのインストールはしません。
まずSSHで接続する必要があります。
SSHでの接続に関してはマニュアルを確認してください。
2022年10月時点で、シン・レンタルサーバーでのPythonのコマンドは以下のようになっています。
- python で 2.7.5
- python3 で 3.6.8
- python3.4 で 3.4.10
- python3.6 で 3.6.8
今回はpython3のコマンドを使用して3.6.8の仮想環境を作成します。
SSHで接続したら以下のようにしてPythonの仮想環境を作成します。
python3 -m venv --without-pip myvenv
シン・レンタルサーバーの場合、--without-pip オプションが無いとエラーが出るのでこのオプションは必ず入れるようにしてください。myvenvの部分は仮想環境の名前です。好きな名前で構いません。
仮想環境が作成出来たら以下のようにして有効にします。
source myvenv/bin/activate
次にget-pip.pyをダウンロード/インストールします。
wget https://bootstrap.pypa.io/pip/3.6/get-pip.py
python get-pip.py
※仮想環境が有効な状態なので、pythonコマンドでは2.7.5ではなく3.6.8が実行されます。
これで仮想環境でpipが使用出来るようになります。install等でPermissionErrorが出ることはありません。また、deactivateで一度仮想環境を抜けてから再度仮想環境を有効にすると、仮想環境内ではpipとpip3のコマンドは同じ物を指すようになります。
get-pip.pyは何か理由が無い限り上記URLの物を使用してください。URLに3.6が入っていない物は要件がPython3.7以上となっているため、3.6.8で実行してもpipがインストール出来ません。
他のバージョン向けの物が必要な場合は以下を確認してください。
https://bootstrap.pypa.io/pip/
get-pip.pyは他の仮想環境も用意する場合は残しておくと良いと思います。
もう使用しない場合は以下のようにして削除します。
rm get-pip.py
余談ですが、シン・レンタルサーバーにてcronやCGIで仮想環境のPythonを扱う場合は以下のようなパスを使用します。
/home/サーバーID/仮想環境名/bin/python
ディスカッション
コメント一覧
いいね!