起步
今天在 Centos7 上安装了 pyenv,但奈何使用命令 pyenv install xxx
时,终端总卡在下载阶段。我想是源访问过慢的问题,然而用 wget 直接下载 Python 压缩包却又一切正常。以我在 linux 上的那点点浅薄知识,还是选择放弃刨根问底吧,不然说不定今天就啥也甭干,光研究配置去了。
以下是我曲线救国的法子。
pyenv install 做的两件事
在终端键入 pyenv install xxx
后,pyenv 会分两个阶段取完成任务。第一个阶段:把 Python 压缩包下载到 /root/.pyenv/cache目录下;第二个阶段:安装。
现在的问题是安装包下载不下来,那么我们可以用:wget https://www.python.org/ftp/python/xxx
先下载安装包,然后执行 pyenv install 安装。
一劳永逸
为了避免每次都要“先下载,再安装”这个繁琐过程,我写了一个简易脚本,在一定程度上解放双手。
脚本代码如下:
#!/bin/bash
cache="/root/.pyenv/cache"
pypack="Python-$1.tar.xz"
if [ ! -d "$cache" ]; then # 如果不存在此目录,创建
mkdir $cache
fi
if [ ! -f "$cache/$pypack" ]; then # 如果不存在 Python 安装包,就用 wget 下载
wget -P $cache https://www.python.org/ftp/python/$1/$pypack
# `wget -P dir url` 表示将 url 指向的内容下载到 dir 目录下
else
printf "\033[1;33m$cache/$pypack is existed.\033[0m\n" # 提示语
fi
pyenv install $1 # 执行安装
事实上,我常写一些小工具满足自需,为方便管理,统一放在了 /home/tools 目录中。
做法如下:
(root) $ vim /home/tools/pyenv-install
# 复制上述代码,wq 保存退出
(root) $ chmod 777 /home/tools/pyenv-install # 修改权限
(root) $ echo "export PATH=$PATH:/home/tools/" >> ~/.bashrc # 添加环境变量
(root) $ source ~/.bashrc
# 现在可以用 pyenv-install 命令下载安装 python 了
(root) $ pyenv-install 3.6.6
最后
仍有许多不足之处。比如国内访问 www.python.org 还是比较慢,有需求的话可以换国内源。另一方面,pyenv 支持很多版本的 python(pyenv install -l
可查看),但本脚本仅支持官方那一类。好在解决问题的思路是一致,按需修改 url 即可。
还不快抢沙发