m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

Pyrthonの環境設定(pyenv+virtualenv+nodeenv)

環境

CentOS

前提

Git

初期設定

yum -y install sqlite-devel

pyenv

pyenvのインストール
[root@localhost ~]# git clone git://github.com/yyuu/pyenv.git ~/.pyenv
Cloning into '/root/.pyenv'...
remote: Counting objects: 3328, done.
remote: Compressing objects: 100% (940/940), done.
remote: Total 3328 (delta 2407), reused 3123 (delta 2215)
Receiving objects: 100% (3328/3328), 497.54 KiB | 83.00 KiB/s, done.
Resolving deltas: 100% (2407/2407), done.
Checking connectivity... done
[root@localhost ~]#
環境設定に設定し、読み込み
[root@localhost ~]# echo 'export PATH="$HOME/.pyenv/bin:$PATH"'  >> ~/.zshrc
[root@localhost ~]# echo 'eval "$(pyenv init -)"' >> ~/.zshrc
[root@localhost ~]# source ~/.zshrc
[root@localhost ~]#
バージョンリストの確認
[root@localhost ~]# pyenv install -l
Available versions:
  2.4
  2.4.1
  2.4.2
  2.4.3
  2.4.4
  2.4.5
  2.4.6
  2.5
  2.5.1
  2.5.2
  2.5.3
  2.5.4
  2.5.5
  2.5.6
  2.6-dev
  2.6.6
  2.6.7
  2.6.8
  2.6.9
  2.7
  2.7-dev
  2.7.1
  2.7.2
  2.7.3
  2.7.4
  2.7.5
  2.7.6
  3.0.1
  3.1-dev
  3.1.3
  3.1.4
  3.1.5
  3.2
  3.2-dev
  3.2.1
  3.2.2
  3.2.3
  3.2.4
  3.2.5
  3.3-dev
  3.3.0
  3.3.1
  3.3.2
  3.3.3
  3.4-dev
  3.4.0a2
  3.4.0a3
  3.4.0a4
  jython-2.5-dev
  jython-2.5.0
  jython-2.5.1
  jython-2.5.2
  jython-2.5.3
  jython-2.5.4-rc1
  jython-2.7-beta1
  jython-dev
  pypy-1.5
  pypy-1.5-src
  pypy-1.6
  pypy-1.7
  pypy-1.7-dev
  pypy-1.8
  pypy-1.8-dev
  pypy-1.9
  pypy-1.9-dev
  pypy-2.0
  pypy-2.0-dev
  pypy-2.0-src
  pypy-2.0.1
  pypy-2.0.1-src
  pypy-2.0.2
  pypy-2.0.2-src
  pypy-2.1
  pypy-2.1-src
  pypy-2.2
  pypy-2.2-src
  pypy-dev
  pypy3-2.1-beta1
  pypy3-2.1-beta1-src
  pypy3-dev
  stackless-2.7-dev
  stackless-2.7.2
  stackless-3.2-dev
  stackless-3.2.2
  stackless-3.3-dev
  stackless-dev
[root@localhost ~]#
インストール
[root@localhost ~]# pyenv install 3.3.2
Downloading Python-3.3.2.tgz...
-> http://yyuu.github.io/pythons/0a2ea57f6184baf45b150aee53c0c8da
Installing Python-3.3.2...
Installed Python-3.3.2 to /root/.pyenv/versions/3.3.2

Downloading setuptools-1.4.tar.gz...
-> https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.tar.gz
Installing setuptools-1.4...
Installed setuptools-1.4 to /root/.pyenv/versions/3.3.2

Downloading pip-1.4.1.tar.gz...
-> https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz
Installing pip-1.4.1...
Installed pip-1.4.1 to /root/.pyenv/versions/3.3.2

[root@localhost ~]#
pyenvのバージョン
[root@localhost ~]# pyenv -v
pyenv 0.4.0-20131116-5-g02e073a
[root@localhost ~]#
切り替え
[root@localhost ~]# pyenv versions
* system (set by /root/.pyenv/version)
  3.3.2
[root@localhost ~]# pyenv global 3.3.2
[root@localhost ~]# pyenv versions
  system
* 3.3.2 (set by /root/.pyenv/version)
[root@localhost ~]# python --version
Python 3.3.2
[root@localhost ~]# pyenv rehash
[root@localhost ~]#
別バージョンのインストール(2.7.3)
[root@localhost ~]# pyenv install 2.7.6
Downloading Python-2.7.6.tgz...
-> http://yyuu.github.io/pythons/1d8728eb0dfcac72a0fd99c17ec7f386
Installing Python-2.7.6...
Installed Python-2.7.6 to /root/.pyenv/versions/2.7.6

Downloading setuptools-1.4.tar.gz...
-> https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.tar.gz
Installing setuptools-1.4...
Installed setuptools-1.4 to /root/.pyenv/versions/2.7.6

Downloading pip-1.4.1.tar.gz...
-> https://pypi.python.org/packages/source/p/pip/pip-1.4.1.tar.gz
Installing pip-1.4.1...
Installed pip-1.4.1 to /root/.pyenv/versions/2.7.6

[root@localhost ~]#

[root@localhost ~]# pyenv global 2.7.6
[root@localhost ~]# pyenv local 2.7.6
[root@localhost ~]# python --version
Python 2.7.6
[root@localhost ~]#
[root@localhost ~]# pyenv rehash
[root@localhost ~]#

virtualenv

virtualenvのインストール
[root@localhost ~]# pip install virtualenv
Downloading/unpacking virtualenv
  Downloading virtualenv-1.10.1.tar.gz (1.3MB): 1.3MB downloaded
  Running setup.py egg_info for package virtualenv

    warning: no files found matching '*.egg' under directory 'virtualenv_support'
    warning: no previously-included files matching '*' found under directory 'docs/_templates'
    warning: no previously-included files matching '*' found under directory 'docs/_build'
Installing collected packages: virtualenv
  Running setup.py install for virtualenv

    warning: no files found matching '*.egg' under directory 'virtualenv_support'
    warning: no previously-included files matching '*' found under directory 'docs/_templates'
    warning: no previously-included files matching '*' found under directory 'docs/_build'
    Installing virtualenv script to /root/.pyenv/versions/2.7.6/bin
    Installing virtualenv-2.7 script to /root/.pyenv/versions/2.7.6/bin
Successfully installed virtualenv
Cleaning up...
[root@localhost ~]#

nodeenv

仮想環境を作成
[root@localhost ~]# virtualenv env
New python executable in env/bin/python
Installing Setuptools..............................................................................................................................................................................................................................done.
Installing Pip.....................................................................................................................................................................................................................................................................................................................................done.
[root@localhost ~]#
仮想環境を起動
[root@localhost ~]# . env/bin/activate
(env)[root@localhost ~]#

※(env)となっている

切り替えた環境にnodeenvをインストール
(env)[root@localhost ~]# pip install nodeenv
Downloading/unpacking nodeenv
  Downloading nodeenv-0.7.1.tar.gz
  Running setup.py egg_info for package nodeenv

    warning: no previously-included files found matching '*.pyc'
    warning: no previously-included files found matching '*.swp'
Installing collected packages: nodeenv
  Running setup.py install for nodeenv

    warning: no previously-included files found matching '*.pyc'
    warning: no previously-included files found matching '*.swp'
    Installing nodeenv script to /root/env/bin
Successfully installed nodeenv
Cleaning up...
(env)[root@localhost ~]#
バージョンの確認
(env)[root@localhost ~]# nodeenv --version
0.7.1
(env)[root@localhost ~]#
インストールするバージョンの確認
(env)[root@localhost ~]# nodeenv -l
0.0.1   0.0.2   0.0.3   0.0.4   0.0.5   0.0.6   0.1.0   0.1.1
0.1.2   0.1.3   0.1.4   0.1.5   0.1.6   0.1.7   0.1.8   0.1.9
0.1.10  0.1.11  0.1.12  0.1.13  0.1.14  0.1.15  0.1.16  0.1.17
0.1.18  0.1.19  0.1.20  0.1.21  0.1.22  0.1.23  0.1.24  0.1.25
0.1.26  0.1.27  0.1.28  0.1.29  0.1.30  0.1.31  0.1.32  0.1.33
0.1.90  0.1.91  0.1.92  0.1.93  0.1.94  0.1.95  0.1.96  0.1.97
0.1.98  0.1.99  0.1.100 0.1.101 0.1.102 0.1.103 0.1.104 0.2.0
0.2.1   0.2.2   0.2.3   0.2.4   0.2.5   0.2.6   0.3.0   0.3.1
0.3.2   0.3.3   0.3.4   0.3.5   0.3.6   0.3.7   0.3.8   0.4.0
0.4.1   0.4.2   0.4.3   0.4.4   0.4.5   0.4.6   0.4.7   0.4.8
0.4.9   0.4.10  0.4.11  0.4.12  0.5.0   0.5.1   0.5.2   0.5.3
0.5.4   0.5.5   0.5.6   0.5.7   0.5.8   0.5.9   0.5.10  0.6.0
0.6.1   0.6.2   0.6.3   0.6.4   0.6.5   0.6.6   0.6.7   0.6.8
0.6.9   0.6.10  0.6.11  0.6.12  0.6.13  0.6.14  0.6.15  0.6.16
0.6.17  0.6.18  0.6.19  0.6.20  0.6.21  0.7.0   0.7.1   0.7.2
0.7.3   0.7.4   0.7.5   0.7.6   0.7.7   0.7.8   0.7.9   0.7.10
0.7.11  0.7.12  0.8.0   0.8.1   0.8.2   0.8.3   0.8.4   0.8.5
0.8.6   0.8.7   0.8.8   0.8.9   0.8.10  0.8.11  0.8.12  0.8.13
0.8.14  0.8.15  0.8.16  0.8.17  0.8.18  0.8.19  0.8.20  0.8.21
0.8.22  0.8.23  0.8.24  0.8.25  0.8.26  0.9.0   0.9.1   0.9.2
0.9.3   0.9.4   0.9.5   0.9.6   0.9.7   0.9.8   0.9.9   0.9.10
0.9.11  0.9.12  0.10.0  0.10.1  0.10.2  0.10.3  0.10.4  0.10.5
0.10.6  0.10.7  0.10.8  0.10.9  0.10.10 0.10.11 0.10.12 0.10.13
0.10.14 0.10.15 0.10.16 0.10.17 0.10.18 0.10.19 0.10.20 0.10.21
0.10.22 0.11.0  0.11.1  0.11.2  0.11.3  0.11.4  0.11.5  0.11.6
0.11.7  0.11.8
(env)[root@localhost ~]#
最新のnodeをセットアップ
(env)[root@localhost ~]# nodeenv -p
 * Install node.js (0.10.22) ... done.
 * Appending nodeenv settings to /root/env/bin/activate
(env)[root@localhost ~]# node -v
v0.10.22
(env)[root@localhost ~]# npm -v
1.3.14
終了
(env)[root@localhost ~]# deactivate
[root@localhost ~]#
別バージョン指定
[root@localhost ~]# nodeenv --node=0.11.8 --npm=0.3.17 --jobs=4 env-11.8
 * Install node.js (0.11.8) ... done.
(env)[root@localhost ~]# deactivate
[root@localhost ~]#
バージョンを切り替えて起動
[root@localhost ~]# . env-11.8/bin/activate
(env-11.8)[root@localhost ~]# node -v
v0.11.8
(env-11.8)[root@localhost ~]# npm -v
1.3.13
(env-11.8)[root@localhost ~]# deactivate_node
[root@localhost ~]#

※deactivate_nodeで終了

所感

Pythonの仕様上の問題なのか不明ですがvirtualenvの存在価値がよくわからない…
これがないとnodeenvが使えなかったので一応入れましたが、ちょっと変な感じ
Pythonはコード自体もよくわかっていないので、これだけにする。

本来はnpmでなんかのツールを使用したいだけだったのでまだ、深入りはしない