エックスサーバーにMinicondaでPython仮想環境を作るの巻
エックスサーバーにMinicondaを入れてPythonの仮想環境を作ったときのメモです。
経緯
エックスサーバー のWordPress上でPythonを使えるようにしたかったのでいろいろ調べてみたら、trinket.ioなる、そこで作ったPythonのコードをiframeでwebページに埋め込んでインタラクティブに動かすことができるサービスがあり、これならワタシにもできそうでした。
が、どうやら無料版である”trinket code”では、ワタシが使いたいモジュール(Plotlyとかpandasとか)がないし、入れられないみたい。有料版だとできるのかな?知らんけど。いろいろ試したいだけなので調べることをやめました。
というわけでこのブログで使わせてもらっているエックスサーバー上でPythonを使う方法を模索したのでした。
で、エックスサーバーだと管理者権限が持てず、そのままだと必要なパッケージやモジュールが入れられないので、仮想環境を構築しないといけないんだと。
というわけで、エックスサーバーにMinicondaを入れてPythonの仮想環境を作りましたよ、という話。
なお、ローカルの環境はmacOS Catalina バージョン10.15.4です。
やったことの記録
まず、エックスサーバーでsshの設定
エックスサーバーのサーバーパネルでsshの有効化と秘密鍵の作成をします。マニュアルに従って。
https://www.xserver.ne.jp/manual/man_server_ssh.php
秘密鍵である[サーバーID].keyができたら、
名前をid_rsaに変更して、自分のPCにディレクトリ .ssh を作ってその中に保存
パーミッションを適切なものにする。
chmod 600 id_rsa
chmod 700 .ssh
600; 所有者だけが読み書き可能
700; 所有者だけが読み書き実行可能
homeディレクトリは755(所有者以外の書き込み不可)のままで可。
準備できたらエックスサーバーにsshで接続。秘密鍵を作った時のパスフレーズが要求されるので入れてあげる。
ssh -i ~/.ssh/id_rsa -l [サーバーID] -p 10022 [サーバーID].xsrv.jp
*[サーバーID]は使用しているドメインに読み替える
*-iでid_rsaを指定していますが、無くても通るかも
*ワタシ、[サーバーID]のところにサーバー番号(sv***)を入れてしまっていたのに気づかず、しばらく
Permission denied (publickey,gssapi-keyex,gssapi-with-mic)
と言われて繋がらん何でだー、ってひたすらやってた。。。
で、接続できた、と思ったら全然進まない。ので-vTをつけて見てみる。
ssh -vT -i ~/.ssh/id_rsa -l [サーバーID] -p 10022 [サーバーID].xsrv.jp
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug1: Sending environment.
debug1: Sending env LANG = ja_JP.UTF-8
で止まってる。。。
原因これっぽい。
https://dev.classmethod.jp/articles/changed-lang-by-ssh/
該当のファイルssh_configは読み取り専用なので
sudo vi /etc/ssh/ssh_config
にて以下のようにコメントアウトして保存。
Host *
# SendEnv LANG LC_*
これでsshを再度実行。やっと入れましたよ。ありがとうございます。
uname -a
で、x86_64 x86_64 x86_64 GNU/Linuxであることを念のため確認。
Minicondaを取りに行く
https://docs.conda.io/en/latest/miniconda.html
必要なものだけでいいのでAnacondaじゃなくてMinicondaにしました。
Miniconda3-latest-Linux-x86_64.sh をMacにダウンロード
(Python 3.7 の Miniconda Linux 64-bit)
エックスサーバーにインストール用ファイルをアップロードしてインストール
エックスサーバーの管理サイト(旧インフォパネル)に再びログインして
該当サーバーIDの「操作メニュー」の「ファイル管理」からサーバーのhomeに行きます。
「ファイルのアップロード」にてファイルを選択して適当なところにアップロード(ASCII/バイナリのところは自動で良い)
sshで入っておいたエックスサーバーでインストール作業。homeでやりました。
sh Miniconda3-latest-Linux-x86_64.sh
いろいろ足りないと怒られる。。。
[/home/**********/miniconda3] >>> PREFIX=/home/**********/miniconda3 WARNING: md5sum mismatch of tar archive expected: 6e267728e74a7089e59c7d8c59d20e6b got: 3772f223f9fd5a7b1a7afe037fa4f92c - Unpacking payload … /home/**********/miniconda3/conda.exe: /lib64/libc.so.6: versionGLIBC_2.4' not found (required by /home/**********/miniconda3/conda.exe) /home/**********/miniconda3/conda.exe: /lib64/libc.so.6: version
.4' not found (required by /home/**********/miniconda3/conda.exe) /home/**********/miniconda3/conda.exe: /lib64/libc.so.6: versionGLIBC_2.4' not found (required by /home/**********/miniconda3/conda.exe) /home/**********/miniconda3/conda.exe: /lib64/libc.so.6: version
.4' not found (required by /home/**********/miniconda3/conda.exe)
**********はユーザー名で読み替える(以下同様)
確認すると、エックスサーバーのGLIBCのバージョンが2.17。
ldd --version
ldd (GNU libc) 2.17
しょうがないのでこのMinicondaはアンインストールして、
1個前のバージョン
Miniconda3-4.7.12.1-Linux-x86_64.sh
を取り直してきてインストールしたらうまくいったっぽいのでこれでいいや。
エックスサーバーでPython仮想環境の構築
PATHを通す(bashです)
export PATH=/home/**********/miniconda3/bin:$PATH
仮想環境名;vucapy としました。仮想環境を作る
conda create -n vucapy
うまくいったっぽい。で、
#
# To activate this environment, use
#
# $ conda activate vucapy
#
# To deactivate an active environment, use
#
# $ conda deactivate
だそうです。
conda activate vucapy
としたら
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init <SHELL_NAME>
Currently supported shells are:
- bash
- fish
- tcsh
- xonsh
- zsh
- powershell
See 'conda init --help' for more information and options.
IMPORTANT: You may need to close and restart your shell after running 'conda init'.
ということなので
conda init bash
してから
source .bashrc
としたら、
(base) [**********@sv*** ~]$ に変わった。
conda activate vucapy
で
(vucapy) [**********e@sv*** ~]$ となった。
できたっぽい。Minicondaだけでエックスサーバー上にPythonの仮想環境を構築できました。
いろいろインストール
じゃあいろいろインストールしてみしよう。とりあえず以下。
Name Version Build Channel dash 1.4.1 py_0 pkgs/main dask 2.16.0 py_0 pkgs/main pandas 1.0.3 py38h0573a6f_0 pkgs/main
condaでインストール
conda install dash
conda install dask
conda install pandas
で3つともうまくインストールいったっぽい。よっしゃ。
ちょっと広告です
https://business.xserver.ne.jp/
https://www.xdomain.ne.jp/
★LOLIPOP★
.tokyo
MuuMuu Domain!
このブログはエックスサーバー で運営しております。
WordPressを使うならロリポップ!
簡単インストール完備で楽々スタート!
世界にたった一つ、あなただけのドメインを登録しよう!
格安ドメイン取得サービス─ムームードメイン─