開発中の 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
$ 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.03 は 654MB もするので設置まで少し時間がかかります。
[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
$ 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
(py37) [admin@centos7 ~]$
(py37) [admin@centos7 ~]$ pip install
次は、ここで作成した仮想環境を使用して、Django REST framework 環境を構築します。
参考文献
Simple Python version management:pyenv
プログラミング言語 Python
Linux版 のインストール
リンク
コメント