Xserverでpipを使えるようにする。

概要

元々cgi用にXserverにはpythonが準備されています。
今回はこちらのpythonを有効活用しながら、venvで環境を構築し、
vscodeでデバッグ出来るまですすめます。

よく出てくる記事ではlinuxbrewやminicondaを使用しているのですが、

  • pythonだけのためにlinuxbrewをインストールする?
  • linuxbrewのために、なんか他にも入れてるやんけ…
  • そもそもcondaが嫌い(pip vs condaでぐちゃぐちゃになる)

といった感じに、自分的にはよろしくないと思ったので、
pythonに元々入っている仮想環境作成venvを使用しました。

初めに

XserverでSSHが使えるようにします。
Xserverにログインし、SSH設定を開きます。
SSH設定をONにする->設定する

Xserverサーバパネルより

公開鍵認証用鍵ペアの生成から鍵を作成します。

パスフレーズを適当に入力し、確認画面へ進む。
keyファイルが自動的にダウンロードされるので、保存します。

Xserverサーバパネルより


これでxserverにSSHでアクセスすることができるようになりました。

VSCodeの準備

自前のPCにvscodeをインストールします。
拡張機能からRemote Developmentをインストールします。

この子がかなり優秀です。


リモートエクスプローラータブをクリックし、
ContainersからSSH Targetsへ変更します。

Remote explorerの画面

歯車マークから.ssh\configを選び、コンフィグを設定します。

左から2番目の歯車。

今回はこのように設定しました。
(HostName、User、IdentityFileは適宜修正してください。)

# Read more about SSH config files: https://linux.die.net/man/5/ssh_config Host XSERVER HostName sv00000.xserver.jp #適宜修正 User xs000000 Port 10022 IdentityFile /Key/File/Path.key IdentitiesOnly yes
Code language: PHP (php)

左下の緑色からXserverへ接続します。

左端の緑(><)

下からグイっとターミナルを出します。

青い部分をドラッグするとコンソールが出てきます。

適当にlsとか打って返事が返ってくれば接続はOKです。

Pythonの環境構築

冒頭に戻りますが、通常ではpipを使うことができません。
そのため、仮想環境を作成します。
想定通りですが、そのままだとエラーを吐かれるので一度pipなしで環境を構築します。

python3 -m venv --without-pip myenv source myenv/bin/activate

仮想環境内に入ったら、pipを入れます。
最新版のget-pip.pyは3.7以降しかサポートしていないみたいなので、3.6のget-pip.pyを拾ってきます。

curl -O https://bootstrap.pypa.io/pip/3.6/get-pip.py python get-pip.py
Code language: JavaScript (javascript)

これでpipを使えるようになりました。
あとは試しにrequestsでもインストールしてみて、問題なければOKです。

pip3 install requests

エラー対策

最初実行したときに、module importエラーが出たのですが、
launch.jsonで元々のpythonを指定していました。
“python”: “./myenv/bin/python”
に変更したらうまくいきました。

デバッグタブ歯車launch.json “python”: “./myenv/bin/python”

余談

当初はpyenvをトライしたのですが、
(1)git clone https://github.com/pyenv/pyenv.git ~/.pyenv
(2).bashrcにパス通す
ライブラリ足りなくね?ってWARNINGやERRORがでて、
setuptoolsを直接入れてみたりしましたが、SyntaxErrorでて、これに行きつきましたとさ。

コメントする