PythonReact AnacondaPyenvPythonReact Backend

React アプリ開発:Backend 構築 〜 pyenv & Anaconda の Python 環境 〜|CentOS7

classified-react-python Python
スポンサーリンク

開発中の WEB アプリの Python パッケージの一部が Anaconda 環境ではインストールされないため、pyenv + anaconda を利用して Python の開発環境を構築します。Python のパッケージを pyenv に任せて、Anaconda は仮想環境のみを提供してもらいます。

サーバ環境

  • CentOS Linux release 7.6.1810 (Core)

pyenv 設置

$ cd    ← ログイン中のアカウントのホームに移動
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
[admin@centos7 ~]$ cd
[admin@centos7 ~]$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
Cloning into '/home/admin/.pyenv'...
remote: Counting objects: 15142, done.
remote: Total 15142 (delta 0), reused 0 (delta 0), pack-reused 15142
Receiving objects: 100% (15142/15142), 2.68 MiB | 295.00 KiB/s, done.
Resolving deltas: 100% (10365/10365), done.

pyenv を環境変数 PATH へ追加

[admin@centos7 ~]$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
[admin@centos7 ~]$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
[admin@centos7 ~]$ echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n  eval "$(pyenv init -)"\nfi' >> ~/.bash_profile
[admin@centos7 ~]$ . ~/.bash_profile

PATH の変更 をすぐ 有効 にする シェルの再起動方法。下記のいずれかを実行するとpyenv を使い始める。

$ exec “$SHELL”
$ . ~/.bash_profile
$ source ~/.bash_profile

pyenv で最新の Anaconda を確認

pyenv でインストールできる python のバージョン/ディストリビューションを調べます。

[admin@centos7 ~]$ pyenv install -l | grep ana
  ...
  anaconda3-5.2.0
  anaconda3-5.3.0
  anaconda3-5.3.1
  anaconda3-2018.12
  anaconda3-2019.03

anaconda3-2019.03 をインストール

設置ファイルのリスト を見ると anaconda3-2019.03654MB もするので設置まで少し時間がかかります。

[admin@centos7 ~]$ pyenv install anaconda3-2019.03
Downloading anaconda3-2019.03-Linux-x86_64.sh...
-> https://repo.continuum.io/archive/anaconda3-2019.03-Linux-x86_64.sh

Installing Anaconda3-2019.03-Linux-x86_64...
Installed Anaconda3-2019.03-Linux-x86_64 to /home/admin/.pyenv/versions/anaconda3-2019.03

anaconda3-2019.03 のインストール確認

[admin@centos7 ~]$ pyenv versions
 system (set by /home/admin/.pyenv/version)
 anaconda3-2019.03 

[admin@centos7 ~]$ pyenv rehash

[admin@centos7 ~]$ python -V
 Python 2.7.5

anaconda3-2019.03 を有効に

[admin@centos7 ~]$ pyenv global anaconda3-2019.03
[admin@centos7 ~]$ pyenv global
 anaconda3-2019.03

anaconda3-2019.03 を環境変数 PATH へ追加

[admin@centos7 ~]$ echo 'export PATH="$PYENV_ROOT/versions/anaconda3-2019.03/bin/:$PATH"' >> ~/.bash_profile
[admin@centos7 ~]$ exec "$SHELL"
[admin@centos7 ~]$ which conda
 ~/.pyenv/versions/anaconda3-2019.03/bin/conda

conda をアップデートしておく ( 任意 )

[admin@centos7 ~]$ conda update conda

conda で仮想環境を作成

書式:conda create -n 環境名 python=設置するバージョン
$ conda create -n py37 python=3.7
[admin@centos7 ~]$ conda create -n py37 python=3.7
...
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##
  environment location: /home/admin/.pyenv/versions/anaconda3-2019.03/envs/py37
  added / updated specs:
    - python=3.7

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    ca-certificates-2019.5.15  |                0         133 KB
    certifi-2019.6.16          |           py37_0         154 KB
    libgcc-ng-9.1.0            |       hdf63c60_0         8.1 MB
    libstdcxx-ng-9.1.0         |       hdf63c60_0         4.0 MB
    openssl-1.1.1c             |       h7b6447c_1         3.8 MB
    pip-19.1.1                 |           py37_0         1.8 MB
    setuptools-41.0.1          |           py37_0         648 KB
    sqlite-3.28.0              |       h7b6447c_0         1.9 MB
    wheel-0.33.4               |           py37_0          39 KB
    ------------------------------------------------------------
                                           Total:        20.6 MB

The following NEW packages will be INSTALLED:

  ca-certificates    pkgs/main/linux-64::ca-certificates-2019.5.15-0
  certifi            pkgs/main/linux-64::certifi-2019.6.16-py37_0
  libedit            pkgs/main/linux-64::libedit-3.1.20181209-hc058e9b_0
  libffi             pkgs/main/linux-64::libffi-3.2.1-hd88cf55_4
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-9.1.0-hdf63c60_0
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-9.1.0-hdf63c60_0
  ncurses            pkgs/main/linux-64::ncurses-6.1-he6710b0_1
  openssl            pkgs/main/linux-64::openssl-1.1.1c-h7b6447c_1
  pip                pkgs/main/linux-64::pip-19.1.1-py37_0
  python             pkgs/main/linux-64::python-3.7.3-h0371630_0
  readline           pkgs/main/linux-64::readline-7.0-h7b6447c_5
  setuptools         pkgs/main/linux-64::setuptools-41.0.1-py37_0
  sqlite             pkgs/main/linux-64::sqlite-3.28.0-h7b6447c_0
  tk                 pkgs/main/linux-64::tk-8.6.8-hbc83047_0
  wheel              pkgs/main/linux-64::wheel-0.33.4-py37_0
  xz                 pkgs/main/linux-64::xz-5.2.4-h14c3975_4
  zlib               pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3


Proceed ([y]/n)? y

Downloading and Extracting Packages
openssl-1.1.1c       | 3.8 MB    | ################################################################ | 100%
ca-certificates-2019 | 133 KB    | ################################################################ | 100%
sqlite-3.28.0        | 1.9 MB    | ################################################################ | 100%
setuptools-41.0.1    | 648 KB    | ################################################################ | 100%
libgcc-ng-9.1.0      | 8.1 MB    | ################################################################ | 100%
wheel-0.33.4         | 39 KB     | ################################################################ | 100%
certifi-2019.6.16    | 154 KB    | ################################################################ | 100%
pip-19.1.1           | 1.8 MB    | ################################################################ | 100%
libstdcxx-ng-9.1.0   | 4.0 MB    | ################################################################ | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate py37
#
# To deactivate an active environment, use
#
#     $ conda deactivate

仮装環境 py37 への出入り

# 入る
[admin@centos7 ~]$ conda activate py37   # or, $ souce activate py37
(py37) [admin@centos7 ~]$ python -V
Python 3.7.3
(py37) [admin@centos7 ~]$

# 出る
(py37) [admin@centos7 ~]$ conda deactivate
[admin@centos7 ~]$
※ 今後、仮装環境でのパッケージのインストールは pip install のみ使用する!
(py37) [admin@centos7 ~]$ conda install
(py37) [admin@centos7 ~]$ pip install
スポンサーリンク

次は、ここで作成した仮想環境を使用して、Django REST framework 環境を構築します。

参考文献

Simple Python version management:pyenv
プログラミング言語 Python
Linux版 のインストール

コメント

タイトルとURLをコピーしました