6

pyenv Quick Start (Utunbu 14.04)

 2 years ago
source link: https://oopsmonk.github.io/posts/2014-12-10-pyenv/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

pyenv Quick Start (Utunbu 14.04)

December 10, 2014 · 2 min · oopsmonk | Suggest Changes

installation#

Requirements#

$ sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm

install pyenv#

$ cd ~
$ git clone git://github.com/yyuu/pyenv.git .pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
$ echo 'eval "$(pyenv init -)"' >> ~/.bashrc

install pyenv-virtualenv#

$ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv 
$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bashrc
$ exec $SHELL

Common Usage (Command Reference)#

List all available versions#

$ pyenv version -l  

Install python2.7.8 to pyenv#

$ pyenv install 2.7.8  

List installed versions#

$ pyenv versions
* system (set by /home/oopsmonk/.pyenv/version)
  2.7.8
  3.4.2

Creating a virtualenv#

$ pyenv virtualenv 2.7.8 mypy-2.7.8

List virtualenvs#

$ pyenv virtualenvs
  mypy-2.7.8 (created from /home/oopsmonk/.pyenv/versions/2.7.8)
  mypy-3.4.2 (created from /home/oopsmonk/.pyenv/versions/3.4.2)

# current versions 
$ pyenv versions
  * system (set by /home/oopsmonk/.pyenv/version)
  2.7.8
  3.4.2
  mypy-2.7.8
  mypy-3.4.2

Use python via virtualenv#

# show current version
oopsmonk@VBox:~/markdown-note$ python --version
Python 2.7.6

# Change to other version
oopsmonk@VBox:~/markdown-note$ pyenv activate mypy-2.7.8
(mypy-2.7.8)oopsmonk@VBox:~/markdown-note$ python --version
Python 2.7.8

# Deactivate
(mypy-2.7.8)oopsmonk@oopsmonk-VBox:~/markdown-note$ pyenv deactivate
oopsmonk@oopsmonk-VBox:~/markdown-note$  python --version
Python 2.7.8
# Why current version is 2.7.8? it's supposed to 2.7.6.

oopsmonk@oopsmonk-VBox:~/markdown-note$ pyenv activate mypy-3.4.2
(mypy-3.4.2) oopsmonk@oopsmonk-VBox:~/markdown-note$ pyenv deactivate
oopsmonk@oopsmonk-VBox:~/markdown-note$ python --version
Python 3.4.2

oopsmonk@oopsmonk-VBox:~/markdown-note$ pyenv versions
  system
  2.7.8
  3.4.2
  mypy-2.7.8
* mypy-3.4.2 (set by PYENV_VERSION environment variable)

# delete a virtualenv   
$ pyenv uninstall mypy-2.7.8

# Go back to original system version  
$ alias pyenv_deactivate='pyenv deactivate && unset PYENV_VERSION'
oopsmonk@oopsmonk-VBox:~/markdown-note$ pyenv activate mypy-3.4.2
(mypy-3.4.2) oopsmonk@oopsmonk-VBox:~/markdown-note$ pyenv_deactivate
oopsmonk@oopsmonk-VBox:~/markdown-note$ python --version
Python 2.7.6

Use python via pyenv#

# Global python version
$ pyenv global 

# python version in current folder
oopsmonk@oopsmonk-VBox:~/markdown-note$ pyenv local mypy-3.4.2
oopsmonk@oopsmonk-VBox:~/markdown-note$ pyenv version
mypy-3.4.2 (set by /home/oopsmonk/markdown-note/.python-version)
oopsmonk@oopsmonk-VBox:~/markdown-note$ cd ..
oopsmonk@oopsmonk-VBox:~$ pyenv version
system (set by /home/oopsmonk/.pyenv/version)
oopsmonk@oopsmonk-VBox:~$ cd -
/home/oopsmonk/markdown-note
oopsmonk@oopsmonk-VBox:~/markdown-note$ pyenv version
mypy-3.4.2 (set by /home/oopsmonk/markdown-note/.python-version)
oopsmonk@oopsmonk-VBox:~/markdown-note$ pyenv local --unset
oopsmonk@oopsmonk-VBox:~/markdown-note$ pyenv version
system (set by /home/oopsmonk/.pyenv/version)

# python version in current shell 
oopsmonk@oopsmonk-VBox:~/markdown-note$ pyenv shell mypy-3.4.2
oopsmonk@oopsmonk-VBox:~/markdown-note$ pyenv version
mypy-3.4.2 (set by PYENV_VERSION environment variable)
oopsmonk@oopsmonk-VBox:~/markdown-note$ cd -
/home/oopsmonk
oopsmonk@oopsmonk-VBox:~$ pyenv version
mypy-3.4.2 (set by PYENV_VERSION environment variable)
oopsmonk@oopsmonk-VBox:~$ pyenv shell --unset
oopsmonk@oopsmonk-VBox:~$ pyenv version
system (set by /home/oopsmonk/.pyenv/version)
oopsmonk@oopsmonk-VBox:~$ cd -
/home/oopsmonk/markdown-note
oopsmonk@oopsmonk-VBox:~/markdown-note$ pyenv version
system (set by /home/oopsmonk/.pyenv/version)

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK