概要
元々cgi用にXserverにはpythonが準備されています。
今回はこちらのpythonを有効活用しながら、venvで環境を構築し、
vscodeでデバッグ出来るまですすめます。
よく出てくる記事ではlinuxbrewやminicondaを使用しているのですが、
- pythonだけのためにlinuxbrewをインストールする?
- linuxbrewのために、なんか他にも入れてるやんけ…
- そもそもcondaが嫌い(pip vs condaでぐちゃぐちゃになる)
といった感じに、自分的にはよろしくないと思ったので、
pythonに元々入っている仮想環境作成venvを使用しました。
初めに
XserverでSSHが使えるようにします。
Xserverにログインし、SSH設定を開きます。
SSH設定をONにする->設定する

公開鍵認証用鍵ペアの生成から鍵を作成します。
パスフレーズを適当に入力し、確認画面へ進む。
keyファイルが自動的にダウンロードされるので、保存します。

これでxserverにSSHでアクセスすることができるようになりました。
VSCodeの準備
自前のPCにvscodeをインストールします。
拡張機能からRemote Developmentをインストールします。

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

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

今回はこのように設定しました。
(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”
に変更したらうまくいきました。

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