国内安装pyenv
最近发现一问题,在安装了deepin系统后,想自己安装一个python版本管理工具,结果使用github安装教程。gitclone的时候死活拉不下来,导致安装失败。烦恼中…
突然灵机一动,看了看安装脚本。发现应该可以想到办法解决安装问题。把通过github拉去代码的地方全部替换为gitee上面。
#!/usr/bin/env bash
set -e
[ -n "$PYENV_DEBUG" ] && set -x
if [ -z "$PYENV_ROOT" ]; then
export PYENV_ROOT="${HOME}/.pyenv"
fi
colorize() {
if [ -t 1 ]; then printf "\e[%sm%s\e[m" "$1" "$2"
else echo -n "$2"
fi
}
# Checks for `.pyenv` file, and suggests to remove it for installing
if [ -d "${PYENV_ROOT}" ]; then
{ echo
colorize 1 "WARNING"
echo ": Can not proceed with installation. Kindly remove the '${PYENV_ROOT}' directory first."
echo
} >&2
exit 1
fi
failed_checkout() {
echo "Failed to git clone $1"
exit -1
}
checkout() {
[ -d "$2" ] || git clone --depth 1 "$1" "$2" || failed_checkout "$1"
}
if ! command -v git 1>/dev/null 2>&1; then
echo "pyenv: Git is not installed, can't continue." >&2
exit 1
fi
if [ -n "${USE_GIT_URI}" ]; then
GITHUB="git://github.com"
else
GITHUB="https://github.com"
fi
GITHUB="https://gitee.com"
checkout "${GITHUB}/ibuki_fuuko/pyenv.git" "${PYENV_ROOT}"
checkout "${GITHUB}/codeseth/pyenv-doctor.git" "${PYENV_ROOT}/plugins/pyenv-doctor"
checkout "${GITHUB}/yuebanlaosiji/pyenv-installer.git" "${PYENV_ROOT}/plugins/pyenv-installer"
checkout "${GITHUB}/codeseth/pyenv-update.git" "${PYENV_ROOT}/plugins/pyenv-update"
checkout "${GITHUB}/unicode233/pyenv-virtualenv.git" "${PYENV_ROOT}/plugins/pyenv-virtualenv"
checkout "${GITHUB}/mouday/pyenv-which-ext.git" "${PYENV_ROOT}/plugins/pyenv-which-ext"
if ! command -v pyenv 1>/dev/null; then
{ echo
colorize 1 "WARNING"
echo ": seems you still have not added 'pyenv' to the load path."
echo
} >&2
{ # Without args, `init` commands print installation help
"${PYENV_ROOT}/bin/pyenv" init || true
"${PYENV_ROOT}/bin/pyenv" virtualenv-init || true
} >&2
fi
修改完成之后的执行脚本如上面。拷贝上面的代码到shell中创建一个install.sh
的文件。
执行
bash install.sh
安装完成之后添加环境变量,如果是使用的bash
cat>>~/.bashrc<<EOF
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
EOF
source ~/.bashrc
如果使用的是zsh
cat>>~/.zshrc<<EOF
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
EOF
source ~/.zshrc
查看现在使用的python
版本
pyenv version
查看可供pyenv使用的python
版本
pyenv versions
安装python
版本
pyenv install <python版本>
安装的版本会在~/.pyenv/versions
目录下。
对于比较大的版本文件,例如anaconda,可以先到官网下载,然后将文件放在~/.pyenv/cache
目录下,再执行安装命令时,pyenv不会重复下载。
此外,可以用--list
参数查看所以可以安装的版本
pyenv install --list
卸载将install
改为uninstall
就行
pyenv uninstall <python版本>
设置全局python
版本,一般不建议改变全局设置
pyenv global <python版本>
设置局部python
版本
pyenv local <python版本>
设置之后可以在目录内外分别试下which python
或python --version
看看效果, 如果没变化的话可以$ python rehash
之后再试试
更新pyenv
$ cd ~/.pyenv
$ git pull
这样完美的解决了,安装不上的问题。