天天看點

Ubuntu下用pyenv進行python環境隔離

1.安裝pyenv

sudo curl -L https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

這個指令會把pyenv安裝到目前使用者的 ~/.pyenv目錄下

然後在~/.bashrc中添加下面語句

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
           

然後執行

source ~/.bashrc

讓我們所做的更改生效,這樣就可以在任何位置調用pyenv指令

2.常用指令

直接輸入pyenv可以列出常用的指令

pyenv
           

部分結果如下

Some useful pyenv commands are:

commands    List all available pyenv commands

local    Set or show the local application-specific Python version

檢視可安裝的版本

pyenv install --list
           

部分結果如下

Available versions:

2.1.3

2.2.3

2.3.7

檢視已安裝的版本

pyenv versions
           

結果如下

* system (set by /home/wpp/.pyenv/version)

其中的*表示目前使用的版本,system表示目前系統的版本

安裝python 3.5.1

需要注意的是在安裝python之前, 最好先執行下列指令安裝一些必要的庫, 防止裝的python功能不全

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils
           

然後安裝python

pyenv install .
           

這時執行pyenv versions結果如下

* system (set by /home/wpp/.pyenv/version)

3.5.1

切換預設版本為 3.5.1

pyenv global .
           

再次執行

pyenv versions
           

結果如下

system (set by /home/wpp/.pyenv/version)

* 3.5.1

想要切回系統預設版本,執行  pyenv global system  即可

要解除安裝某個版本的python執行

pyenv uninstall x.x.x
           

3.虛拟環境設定

用以上方式安裝會內建virtualenv,是以我們就不用額外安裝了

建立虛拟環境

pyenv virtualenv . py3env
           

這樣會建立一個名為py3env的虛拟環境,位于~/.pyenv/versions/目錄,其中的3.5.1為python版本号,可以視情況換為你需要的版本

此時執行pyenv versions結果如下

* system (set by /home/wpp/.pyenv/version)

3.5.1

3.5.1/envs/py3env

py3env

其中的py3env是一個連結檔案,位于~/.pyenv/versions/,指向~/.pyenv/versions/3.5.1/envs/py3env

進入虛拟環境

pyenv activate py3env
           

此時指令行前面會有提示,如下所示

(py3env) [email protected] ~ $

注意前面的(py3env)提示符

退出虛拟環境

pyenv deactivate
           

在虛拟環境進行的所有操作都針對目前環境,不會污染系統,也不會版本錯亂

要删除虛拟環境隻需執行

rm -rf ~/.pyenv/versions/py3env/
rm -rf ~/.pyenv/versions/./envs/py3env
           

如果覺得進入和退出python虛拟環境麻煩,可以在~/.bashrc中加入

alias py3env="pyenv activate py3env"
alias py3env_exit="pyenv deactivate"
           

這樣進入和退出虛拟環境隻需執行

py3env
#和
py3env_exit
           

4.讓定時任務使用我們的虛拟環境

在網上搜了一些方法, 下面隻列出我認為最簡單的一種方法。

* * * /home/moma/.pyenv/versions/./envs/pyenv3./bin/python yourprogram_path/test.py
           

參考:

  • 用pyenv和virtualenv搭建單機多版本python虛拟開發環境
  • stackoverflow: Cron and virtualenv