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