1.安装依赖
apt-get install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev git curl
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
- 设置pyenv环境变量
$ cat>>.bashrc<<EOF### pyenv settingsexport PYENV_ROOT="\$HOME/.pyenv"export PATH="\$PYENV_ROOT/bin:\$PATH"eval "\$(pyenv init -)"EOF
export PYENV_ROOT="$HOME/.pyenv"export PATH="$PYENV_ROOT/bin:$PATH"eval "$(pyenv init -)"
使配置生效
- source .bashrc
pyenv命令信息
基本命令- pyenv versions //查看所有版本信息
- pyenv version //查看当前版本的信息
- pyenv install –list //查看可安装的版本:
- pyenv install -v 2.7.1 //可视化安装
- pyenv install 2.7.1 //静默安装
- pyenv uninstall 2.7.1 //卸载
- pyenv rehash //更新清单列表
- pyenv which python //显示当前python的安装路径
- pyenv global
//设置全局默认python版本 - pyenv local
//设置当前路径所使用的python版本 - pyenv shell
//在当前shell的session中启用摸个python版本,优先级别高于global和local
虚拟化命令
- pyenv virtualenv 3.6.0 roachenv-3.6.0 //安装虚拟环境
- pyenv activate roachenv-3.6.0 //激活虚拟环境
- pyenv deactivate roachenv-3.6.0 //停用虚拟环境
- pyenv uninstall roachenv-3.6.0 //删除虚拟环境
安装
- 安装3.6.0版本
- 安装2.7.13版本
pip相关命令
- pip -V //查看pip版本
python相关命令
- python -V //查看python版本
2.pyenv卸载
- rm -rf ~/.pyenv
- remove .bashrc
export PATH="~/.pyenv/bin:$PATH"eval "$(pyenv init -)"eval "$(pyenv virtualenv-init -)"
3.pyenv命令集
https://github.com/yyuu/pyenv/blob/master/COMMANDS.md
4.pyenv进行本地安装[预防网络安装失败问题]:
http://blog.csdn.net/windeal3203/article/details/53413479- 找到pyenv路径:
~/.pyenv - python-build位置:
/root/.pyenv/plugins/python-build/share/python-build - 查看版本安装指令:
cat x.x.x
找到 install_package "Python-x.x.x" "https://"
替换成 install_package "Python-x.x.x" "/usr/opt/pyenv/"
5.权限配置
- adduser wuqiang
- cp /root/.pyenv /home/wuqiang/ -p -r
- chown wuqiang:wuqiang /home/wuqiang/.pyenv -R
- mkdir /opt/python-wuqiang
- chown wuqiang:wuqiang /opt/python-wuqiang
chmod 750 /opt/python-wuqiang
su - wuqiang
- pyenv virtualenv 3.6.0 wuqiang-3.6.0
- pyenv virtualenv system wuqiang-2.7.12
- cd /opt/python-wuqiang
pyenv local wuqiang-3.6.0
在这两个文件的末尾添加以下内容:
vim /home/.profile
vim /home/.bashrc
export PYENV_ROOT="PYENV_ROOT/bin:(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
6.pyenv安装脚本
- 1.包含pyenv virtualenv
#!/bin/bashcheck_sys() {if [ `head -1 /etc/issue|cut -b 1-6` != "Debian" ];thenecho "your sys is not the Debian!"exit 0fi}change_vim() {vimdir="/etc/vim/vimrc"if [ `cat $vimdir|egrep "^set ts=4|^syntax on"|wc -l` != "2" ]; thenecho "add the vim ts syntax"echo "set ts=4" >> $vimdirecho "syntax on" >> $vimdirfi}install_depend_lib() {if [ `dpkg -l |egrep -w "make|build-essential|libssl-dev|zlib1g-dev|libbz2-dev|libreadline-dev|libsqlite3-dev|git|curl"|wc -l` == 10 ]; thenexit 0elseapt-get install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev git curl >> /dev/null 2>&1fi}install_pyenv() {set -e[ -n "$PYENV_DEBUG" ] && set -xif [ -z "$PYENV_ROOT" ]; thenPYENV_ROOT="${HOME}/.pyenv"fishell="$1"if [ -z "$shell" ]; thenshell="$(ps c -p "$PPID" -o 'ucomm=' 2>/dev/null || true)"shell="${shell##-}"shell="${shell%% *}"shell="$(basename "${shell:-$SHELL}")"ficolorize() {if [ -t 1 ]; then printf "\e[%sm%s\e[m" "$1" "$2"else echo -n "$2"fi}checkout() {[ -d "$2" ] || git clone --depth 1 "$1" "$2"}if ! command -v git 1>/dev/null 2>&1; thenecho "pyenv: Git is not installed, can't continue." >&2exit 1fiif [ -n "${USE_GIT_URI}" ]; thenGITHUB="git://github.com"elseGITHUB="https://github.com"ficheckout "${GITHUB}/yyuu/pyenv.git" "${PYENV_ROOT}"checkout "${GITHUB}/yyuu/pyenv-doctor.git" "${PYENV_ROOT}/plugins/pyenv-doctor"checkout "${GITHUB}/yyuu/pyenv-installer.git" "${PYENV_ROOT}/plugins/pyenv-installer"checkout "${GITHUB}/yyuu/pyenv-update.git" "${PYENV_ROOT}/plugins/pyenv-update"checkout "${GITHUB}/yyuu/pyenv-virtualenv.git" "${PYENV_ROOT}/plugins/pyenv-virtualenv"checkout "${GITHUB}/yyuu/pyenv-which-ext.git" "${PYENV_ROOT}/plugins/pyenv-which-ext"if ! command -v pyenv 1>/dev/null; then{ echocolorize 1 "WARNING"echo ": seems you still have not added 'pyenv' to the load path."echo} >&2case "$shell" inbash )profile="~/.bash_profile";;zsh )gprofile="~/.zshrc";;ksh )profile="~/.profile";;fish )profile="~/.config/fish/config.fish";;* )profile="your profile";;esac{ echo "# Load pyenv automatically by adding"echo "# the following to ${profile}:"echocase "$shell" infish )echo "set -x PATH \"${PYENV_ROOT}/bin\" \$PATH"echo 'status --is-interactive; and . (pyenv init -|psub)'echo 'status --is-interactive; and . (pyenv virtualenv-init -|psub)';;* )echo "export PATH=\"${PYENV_ROOT}/bin:\$PATH\""echo "eval \"\$(pyenv init -)\""echo "eval \"\$(pyenv virtualenv-init -)\"";;esac} >&2fi}get_pyenv(){if [ `ls -a ~ |grep ".pyenv" |wc -l` != 0 ]; thenexit 0elseinstall_pyenvfi}set_bashrc(){if [ `cat ~/.bashrc |grep pyenv|wc -l` != 0 ]; thenexit 0elsecat>>~/.bashrc<<EOF### pyenv settingsexport PYENV_ROOT="\$HOME/.pyenv"export PATH="\$PYENV_ROOT/bin:\$PATH"eval "\$(pyenv init -)"eval "\$(pyenv virtualenv-init -)"EOFfi#source ~/.bashrcexec $SHELL}check_syschange_viminstall_depend_libget_pyenvset_bashrc
- 2.不包含pyenv virtualenv
#!/bin/bashcheck_sys() {if [ `head -1 /etc/issue|cut -b 1-6` != "Debian" ];thenif [ `head -1 /etc/issue|cut -b 1-6` != "Ubuntu" ];thenecho "your sys is not the Debian or Ubuntu!"exit 0fifi}change_vim() {vimdir="/etc/vim/vimrc"if [ `cat $vimdir|egrep "^set ts=4|^syntax on"|wc -l` != "2" ]; thenecho "add the vim ts syntax"echo "set ts=4" >> $vimdirecho "syntax on" >> $vimdirfi}install_depend_lib() {if [ `dpkg -l |egrep -w "make|build-essential|libssl-dev|zlib1g-dev|libbz2-dev|libreadline-dev|libsqlite3-dev|git|curl"|wc -l` == 10 ]; thenexit 0elseapt-get install make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev git curl >> /dev/null 2>&1fi}get_pyenv(){if [ `ls -a ~ |grep ".pyenv" |wc -l` != 0 ]; thenexit 0elsegit clone https://github.com/yyuu/pyenv.git ~/.pyenvfi}set_bashrc(){if [ `cat ~/.bashrc |grep pyenv|wc -l` != 0 ]; thenexit 0elsecat>>~/.bashrc<<EOF### pyenv settingsexport PYENV_ROOT="\$HOME/.pyenv"export PATH="\$PYENV_ROOT/bin:\$PATH"eval "\$(pyenv init -)"EOFfi#source ~/.bashrcexec $SHELL}check_syschange_viminstall_depend_libget_pyenvset_bashrc
- 3.不包含环境配置的安装脚本
#!/usr/bin/env bashset -e[ -n "$PYENV_DEBUG" ] && set -xif [ -z "$PYENV_ROOT" ]; thenPYENV_ROOT="${HOME}/.pyenv"fishell="$1"if [ -z "$shell" ]; thenshell="$(ps c -p "$PPID" -o 'ucomm=' 2>/dev/null || true)"shell="${shell##-}"shell="${shell%% *}"shell="$(basename "${shell:-$SHELL}")"ficolorize() {if [ -t 1 ]; then printf "\e[%sm%s\e[m" "$1" "$2"else echo -n "$2"fi}checkout() {[ -d "$2" ] || git clone --depth 1 "$1" "$2"}if ! command -v git 1>/dev/null 2>&1; thenecho "pyenv: Git is not installed, can't continue." >&2exit 1fiif [ -n "${USE_GIT_URI}" ]; thenGITHUB="git://github.com"elseGITHUB="https://github.com"ficheckout "${GITHUB}/yyuu/pyenv.git" "${PYENV_ROOT}"checkout "${GITHUB}/yyuu/pyenv-doctor.git" "${PYENV_ROOT}/plugins/pyenv-doctor"checkout "${GITHUB}/yyuu/pyenv-installer.git" "${PYENV_ROOT}/plugins/pyenv-installer"checkout "${GITHUB}/yyuu/pyenv-update.git" "${PYENV_ROOT}/plugins/pyenv-update"checkout "${GITHUB}/yyuu/pyenv-virtualenv.git" "${PYENV_ROOT}/plugins/pyenv-virtualenv"checkout "${GITHUB}/yyuu/pyenv-which-ext.git" "${PYENV_ROOT}/plugins/pyenv-which-ext"if ! command -v pyenv 1>/dev/null; then{ echocolorize 1 "WARNING"echo ": seems you still have not added 'pyenv' to the load path."echo} >&2case "$shell" inbash )profile="~/.bash_profile";;zsh )profile="~/.zshrc";;ksh )profile="~/.profile";;fish )profile="~/.config/fish/config.fish";;* )profile="your profile";;esac{ echo "# Load pyenv automatically by adding"echo "# the following to ${profile}:"echocase "$shell" infish )echo "set -x PATH \"${PYENV_ROOT}/bin\" \$PATH"echo 'status --is-interactive; and . (pyenv init -|psub)'echo 'status --is-interactive; and . (pyenv virtualenv-init -|psub)';;* )echo "export PATH=\"${PYENV_ROOT}/bin:\$PATH\""echo "eval \"\$(pyenv init -)\""echo "eval \"\$(pyenv virtualenv-init -)\"";;esac} >&2fi
浙公网安备 33010602011771号