エックスサーバーにMinicondaでPython仮想環境を作るの巻

エックスサーバーに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: version GLIBC_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: version GLIBC_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つともうまくインストールいったっぽい。よっしゃ。



このブログはエックスサーバー で運営しております。


Word Press専用クラウド型レンタルサーバーwpX Speed


WordPressを使うならロリポップ!
簡単インストール完備で楽々スタート!

世界にたった一つ、あなただけのドメインを登録しよう!
格安ドメイン取得サービス─ムームードメイン─