编辑
2024-01-18
Linux
0
请注意,本文编写于 38 天前,最后修改于 33 天前,其中某些信息可能已经过时。

目录

直接安装 Pyenv 会报错
设置全局代理
使用 bash 安装 Pyenv
然后安装指定版本的 Python
安装必要组件
安装 3.12.1

看完本文会得到什么

  1. 为 Ubuntu 设置全局的 http 和 https 代理
  2. 使用 bash 安装 Pyenv
  3. 安装指定版本你的 Python

直接安装 Pyenv 会报错

因为 raw.githubusercontent.com 是被“绿色保护”的域名,因此你直接在国内是无法安装,首先第一件事情,我们需要解决的是网络的问题。

其中有几种思路,第一种思路是设置 hosts 的方式,你先通过 ip 解析的工具,解析 raw.githubusercontent.com 的 ip 是多好,然后设置你本地的 hosts 文件,这样也能解决一部分问题,但是我遇到过很多时候,你要安装的是一个执行脚本,而这个脚本你从 raw.githubusercontent.com 获取之后,它脚本里面的内容还有一大堆的 clone 和 curl 命令去访问其他域名,这个思路只能解决网络问题中的一部分,换言之,我们还是要寻求一个一劳永逸的方法。

设置全局代理

请执行如下命令,检查你当前的环境配置:

$ cat /etc/environment

它应该显示如下内容:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"

这个就是你本地的环境变量里面的 $PATH,我们可以通过修改这个文件来设置全局的网络代理啊。

将文件添加如下内容:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" http_proxy=http://192.168.137.1:7890/ https_proxy=http://192.168.137.1:7890/ ftp_proxy=http://192.168.137.1:7890/

这个的前提是你得有一个可以越过“绿色保护墙”的代理,我这里设置的是我另外一台 Windows 开发机的地址,它上面我装有一个可以越过“绿色保护墙”的代理软件

使用 bash 安装 Pyenv

官方仍然推荐 homebrew 的方式,但是也不排斥直接执行 bash 脚本的方式。

$ curl https://pyenv.run | bash

这样你就可以下载成功了,执行完毕之后,需要执行如下命令,把 pyenv 命令加入到环境变量里面

$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc

然后建议重启电脑。

然后安装指定版本的 Python

这里我遇到一个坑,Ubuntu 的原始镜像,里面确实很多组件,你不要被现如今大多数云厂商提供的镜像误导了,以为这些组件在 Ubuntu 最原始的镜像里面就有,这里还是要拓展一下自己的知识面,没有坏处,云厂商提供的镜像无一例外都是各大厂商自己 diy 过的,里面夹带私货你都不一定知道。

安装必要组件

$ sudo apt-get install build-essential zlib1g-dev openssl libssl-dev libbz2-dev liblzma-dev libncurses5 libncurses5-dev libncursesw5 libxpm-dev libxext-dev libreadline-dev libsqlite3-dev libffi-dev -y

安装 3.12.1

bash
$ pyenv install 3.12.1 $ pyenv global 3.12.1

这样全局都可以使用 python 和 pip 了。