pyenv install 不能用问题

工具 2019-06-07 1625 字 1552 浏览 点赞

起步

今天在 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 即可。



本文由 Guan 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论