1.安装pyenv
是一个全局的python版本管理工具、能够进行全局的python版本切换、使用pyenv之后可以再服务器上安装多个python版本 。
第一步:安装git curl
[email protected]:/$ sudo apt-get install git curl [sudo] hgy 的密码: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 将会同时安装下列软件: git-man liberror-perl 建议安装: git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn 下列【新】软件包将被安装: curl git git-man liberror-perl 升级了 0 个软件包,新安装了 4 个软件包,要卸载 0 个软件包,有 61 个软件包未被升级。 需要下载 4,052 kB 的归档。 解压缩后会消耗 26.0 MB 的额外空间。 您希望继续执行吗? [Y/n] y 获取:1 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 curl amd64 7.47.0-1ubuntu2.8 [139 kB] 获取:2 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 liberror-perl all 0.17-1.2 [19.6 kB] 获取:3 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 git-man all 1:2.7.4-0ubuntu1.4 [736 kB] 获取:4 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 git amd64 1:2.7.4-0ubuntu1.4 [3,158 kB] 已下载 4,052 kB,耗时 20秒 (199 kB/s) 正在选中未选择的软件包 curl。 (正在读取数据库 ... 系统当前共安装有 184038 个文件和目录。) 正准备解包 .../curl_7.47.0-1ubuntu2.8_amd64.deb ... 正在解包 curl (7.47.0-1ubuntu2.8) ... 正在选中未选择的软件包 liberror-perl。 正准备解包 .../liberror-perl_0.17-1.2_all.deb ... 正在解包 liberror-perl (0.17-1.2) ... 正在选中未选择的软件包 git-man。 正准备解包 .../git-man_1%3a2.7.4-0ubuntu1.4_all.deb ... 正在解包 git-man (1:2.7.4-0ubuntu1.4) ... 正在选中未选择的软件包 git。 正准备解包 .../git_1%3a2.7.4-0ubuntu1.4_amd64.deb ... 正在解包 git (1:2.7.4-0ubuntu1.4) ... 正在处理用于 man-db (2.7.5-1) 的触发器 ... 正在设置 curl (7.47.0-1ubuntu2.8) ... 正在设置 liberror-perl (0.17-1.2) ... 正在设置 git-man (1:2.7.4-0ubuntu1.4) ... 正在设置 git (1:2.7.4-0ubuntu1.4) ... [email protected]:/$ sudo rm -rf ~/.pyenv [email protected]:/$
第二步:开始安装pyenv
[email protected]:/$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 148 100 148 0 0 44 0 0:00:03 0:00:03 --:--:-- 44 100 2194 100 2194 0 0 404 0 0:00:05 0:00:05 --:--:-- 1073 正克隆到 ‘/home/hgy/.pyenv‘... remote: Counting objects: 610, done. remote: Compressing objects: 100% (423/423), done. remote: Total 610 (delta 293), reused 273 (delta 97), pack-reused 0 接收对象中: 100% (610/610), 356.94 KiB | 30.00 KiB/s, 完成. 处理 delta 中: 100% (293/293), 完成. 检查连接... 完成。 正克隆到 ‘/home/hgy/.pyenv/plugins/pyenv-doctor‘... remote: Counting objects: 11, done. remote: Compressing objects: 100% (8/8), done. remote: Total 11 (delta 1), reused 6 (delta 1), pack-reused 0 展开对象中: 100% (11/11), 完成. 检查连接... 完成。 正克隆到 ‘/home/hgy/.pyenv/plugins/pyenv-installer‘... remote: Counting objects: 17, done. remote: Compressing objects: 100% (15/15), done. remote: Total 17 (delta 2), reused 9 (delta 0), pack-reused 0 展开对象中: 100% (17/17), 完成. 检查连接... 完成。 正克隆到 ‘/home/hgy/.pyenv/plugins/pyenv-update‘... remote: Counting objects: 10, done. remote: Compressing objects: 100% (6/6), done. remote: Total 10 (delta 1), reused 6 (delta 0), pack-reused 0 展开对象中: 100% (10/10), 完成. 检查连接... 完成。 正克隆到 ‘/home/hgy/.pyenv/plugins/pyenv-virtualenv‘... remote: Counting objects: 54, done. remote: Compressing objects: 100% (48/48), done. remote: Total 54 (delta 10), reused 19 (delta 0), pack-reused 0 展开对象中: 100% (54/54), 完成. 检查连接... 完成。 正克隆到 ‘/home/hgy/.pyenv/plugins/pyenv-which-ext‘... remote: Counting objects: 10, done. remote: Compressing objects: 100% (6/6), done. remote: Total 10 (delta 1), reused 5 (delta 0), pack-reused 0 展开对象中: 100% (10/10), 完成. 检查连接... 完成。 ? WARNING: seems you still have not added ‘pyenv‘ to the load path. ? # Load pyenv automatically by adding # the following to ~/.bash_profile: ? export PATH="/home/hgy/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" [email protected]:/$
注意:会在/home/hgy/ 目录下有一个.pyenv的隐藏文件夹
第三步:修改vim ~/.bashrc、在最后一行写入以下内容
export PATH="~/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" ? [email protected]:/$ vim ~/.bashrc [email protected]:/$
第四步:让配置文件立即生效
[email protected]:/$ source ~/.bashrc [email protected]:/$
第五步:更新pyenv(看到Already up-to-date.说明更新完成)
[email protected]:/$ pyenv update Updating /home/hgy/.pyenv... 来自 https://github.com/pyenv/pyenv * branch master -> FETCH_HEAD Already up-to-date. Updating /home/hgy/.pyenv/plugins/pyenv-doctor... 来自 https://github.com/pyenv/pyenv-doctor * branch master -> FETCH_HEAD Already up-to-date. Updating /home/hgy/.pyenv/plugins/pyenv-installer... 来自 https://github.com/pyenv/pyenv-installer * branch master -> FETCH_HEAD Already up-to-date. Updating /home/hgy/.pyenv/plugins/pyenv-update... 来自 https://github.com/pyenv/pyenv-update * branch master -> FETCH_HEAD Already up-to-date. Updating /home/hgy/.pyenv/plugins/pyenv-virtualenv... 来自 https://github.com/pyenv/pyenv-virtualenv * branch master -> FETCH_HEAD Already up-to-date. Updating /home/hgy/.pyenv/plugins/pyenv-which-ext... 来自 https://github.com/pyenv/pyenv-which-ext * branch master -> FETCH_HEAD Already up-to-date. [email protected]:/$
2.使用pyenv
2.1 查看pyenv支持的python版本
[email protected]:/$ pyenv install --list Available versions: 2.1.3 2.2.3 2.3.7 2.4 2.4.1 2.4.2 ......
2.2 查看pyenv可以管理的python版本
[email protected]:/$ pyenv versions 2.7.9 * 3.6.4 (set by /home/xiaohuang/.pyenv/version)
注意:
1)*号表示默认版本
2)在安装pyenv之前,系统已经默认安装了2.7和3.6版本python,pyenv没有权利去管理这两个版本(解决方案:先卸载系统自带的python版本,在使用pyenv重新安装)
3.使用pyenv安装python
第一步:安装依赖包
[email protected]:/$ sudo apt-get install gcc libc6-dev make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev llvm [sudo] hgy 的密码: 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 build-essential 已经是最新版 (12.1ubuntu2)。 gcc 已经是最新版 (4:5.3.1-1ubuntu1)。 make 已经是最新版 (4.1-6)。 libc6-dev 已经是最新版 (2.23-0ubuntu10)。 将会同时安装下列软件: binfmt-support bzip2-doc libffi-dev libjsoncpp1 libreadline6-dev libssl-doc libtinfo-dev llvm-3.8 llvm-3.8-dev llvm-3.8-runtime llvm-runtime 建议安装: readline-doc sqlite3-doc llvm-3.8-doc 下列【新】软件包将被安装: binfmt-support bzip2-doc libbz2-dev libffi-dev libjsoncpp1 libreadline-dev libreadline6-dev libsqlite3-dev libssl-dev libssl-doc libtinfo-dev llvm llvm-3.8 llvm-3.8-dev llvm-3.8-runtime llvm-runtime zlib1g-dev 升级了 0 个软件包,新安装了 17 个软件包,要卸载 0 个软件包,有 61 个软件包未被升级。 需要下载 22.2 MB 的归档。 解压缩后会消耗 140 MB 的额外空间。 您希望继续执行吗? [Y/n] y 获取:1 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 binfmt-support amd64 2.1.6-1 [50.7 kB] 获取:2 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 bzip2-doc all 1.0.6-8 [295 kB] 获取:3 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libbz2-dev amd64 1.0.6-8 [29.1 kB] 获取:4 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libtinfo-dev amd64 6.0+20160213-1ubuntu1 [77.4 kB] 获取:5 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libreadline6-dev amd64 6.3-8ubuntu2 [124 kB] 获取:6 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libreadline-dev amd64 6.3-8ubuntu2 [992 B] 获取:7 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libsqlite3-dev amd64 3.11.0-1ubuntu1 [508 kB] 获取:8 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 zlib1g-dev amd64 1:1.2.8.dfsg-2ubuntu4.1 [168 kB] 获取:9 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libssl-dev amd64 1.0.2g-1ubuntu4.13 [1,342 kB] 获取:10 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 libssl-doc all 1.0.2g-1ubuntu4.13 [1,079 kB] 获取:11 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 llvm-3.8-runtime amd64 1:3.8-2ubuntu4 [72.3 kB] 获取:12 http://cn.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 llvm-runtime amd64 1:3.8-33ubuntu3.1 [2,756 B] 获取:13 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 llvm-3.8 amd64 1:3.8-2ubuntu4 [1,524 kB] 获取:14 http://cn.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 llvm amd64 1:3.8-33ubuntu3.1 [3,196 B] 获取:15 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libjsoncpp1 amd64 1.7.2-1 [73.0 kB] 获取:16 http://cn.archive.ubuntu.com/ubuntu xenial/main amd64 libffi-dev amd64 3.2.1-4 [161 kB] 获取:17 http://cn.archive.ubuntu.com/ubuntu xenial-updates/main amd64 llvm-3.8-dev amd64 1:3.8-2ubuntu4 [16.7 MB] 已下载 22.2 MB,耗时 1分 41秒 (218 kB/s) 正在选中未选择的软件包 binfmt-support。 (正在读取数据库 ... 系统当前共安装有 184860 个文件和目录。) 正准备解包 .../binfmt-support_2.1.6-1_amd64.deb ... 正在解包 binfmt-support (2.1.6-1) ... 正在选中未选择的软件包 bzip2-doc。 正准备解包 .../bzip2-doc_1.0.6-8_all.deb ... 正在解包 bzip2-doc (1.0.6-8) ... 正在选中未选择的软件包 libbz2-dev:amd64。 正准备解包 .../libbz2-dev_1.0.6-8_amd64.deb ... 正在解包 libbz2-dev:amd64 (1.0.6-8) ... 正在选中未选择的软件包 libtinfo-dev:amd64。 正准备解包 .../libtinfo-dev_6.0+20160213-1ubuntu1_amd64.deb ... 正在解包 libtinfo-dev:amd64 (6.0+20160213-1ubuntu1) ... 正在选中未选择的软件包 libreadline6-dev:amd64。 正准备解包 .../libreadline6-dev_6.3-8ubuntu2_amd64.deb ... 正在解包 libreadline6-dev:amd64 (6.3-8ubuntu2) ... 正在选中未选择的软件包 libreadline-dev:amd64。 正准备解包 .../libreadline-dev_6.3-8ubuntu2_amd64.deb ... 正在解包 libreadline-dev:amd64 (6.3-8ubuntu2) ... 正在选中未选择的软件包 libsqlite3-dev:amd64。 正准备解包 .../libsqlite3-dev_3.11.0-1ubuntu1_amd64.deb ... 正在解包 libsqlite3-dev:amd64 (3.11.0-1ubuntu1) ... 正在选中未选择的软件包 zlib1g-dev:amd64。 正准备解包 .../zlib1g-dev_1%3a1.2.8.dfsg-2ubuntu4.1_amd64.deb ... 正在解包 zlib1g-dev:amd64 (1:1.2.8.dfsg-2ubuntu4.1) ... 正在选中未选择的软件包 libssl-dev:amd64。 正准备解包 .../libssl-dev_1.0.2g-1ubuntu4.13_amd64.deb ... 正在解包 libssl-dev:amd64 (1.0.2g-1ubuntu4.13) ... 正在选中未选择的软件包 libssl-doc。 正准备解包 .../libssl-doc_1.0.2g-1ubuntu4.13_all.deb ... 正在解包 libssl-doc (1.0.2g-1ubuntu4.13) ... 正在选中未选择的软件包 llvm-3.8-runtime。 正准备解包 .../llvm-3.8-runtime_1%3a3.8-2ubuntu4_amd64.deb ... 正在解包 llvm-3.8-runtime (1:3.8-2ubuntu4) ... 正在选中未选择的软件包 llvm-runtime。 正准备解包 .../llvm-runtime_1%3a3.8-33ubuntu3.1_amd64.deb ... 正在解包 llvm-runtime (1:3.8-33ubuntu3.1) ... 正在选中未选择的软件包 llvm-3.8。 正准备解包 .../llvm-3.8_1%3a3.8-2ubuntu4_amd64.deb ... 正在解包 llvm-3.8 (1:3.8-2ubuntu4) ... 正在选中未选择的软件包 llvm。 正准备解包 .../llvm_1%3a3.8-33ubuntu3.1_amd64.deb ... 正在解包 llvm (1:3.8-33ubuntu3.1) ... 正在选中未选择的软件包 libjsoncpp1:amd64。 正准备解包 .../libjsoncpp1_1.7.2-1_amd64.deb ... 正在解包 libjsoncpp1:amd64 (1.7.2-1) ... 正在选中未选择的软件包 libffi-dev:amd64。 正准备解包 .../libffi-dev_3.2.1-4_amd64.deb ... 正在解包 libffi-dev:amd64 (3.2.1-4) ... 正在选中未选择的软件包 llvm-3.8-dev。 正准备解包 .../llvm-3.8-dev_1%3a3.8-2ubuntu4_amd64.deb ... 正在解包 llvm-3.8-dev (1:3.8-2ubuntu4) ... 正在处理用于 systemd (229-4ubuntu21.4) 的触发器 ... 正在处理用于 ureadahead (0.100.0-19) 的触发器 ... 正在处理用于 man-db (2.7.5-1) 的触发器 ... 正在处理用于 install-info (6.1.0.dfsg.1-5) 的触发器 ... 正在处理用于 doc-base (0.10.7) 的触发器 ... Processing 33 changed doc-base files, 2 added doc-base files... 正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ... 正在设置 binfmt-support (2.1.6-1) ... 正在设置 bzip2-doc (1.0.6-8) ... 正在设置 libbz2-dev:amd64 (1.0.6-8) ... 正在设置 libtinfo-dev:amd64 (6.0+20160213-1ubuntu1) ... 正在设置 libreadline6-dev:amd64 (6.3-8ubuntu2) ... 正在设置 libreadline-dev:amd64 (6.3-8ubuntu2) ... 正在设置 libsqlite3-dev:amd64 (3.11.0-1ubuntu1) ... 正在设置 zlib1g-dev:amd64 (1:1.2.8.dfsg-2ubuntu4.1) ... 正在设置 libssl-dev:amd64 (1.0.2g-1ubuntu4.13) ... 正在设置 libssl-doc (1.0.2g-1ubuntu4.13) ... 正在设置 llvm-3.8-runtime (1:3.8-2ubuntu4) ... 正在设置 llvm-runtime (1:3.8-33ubuntu3.1) ... 正在设置 llvm-3.8 (1:3.8-2ubuntu4) ... 正在设置 llvm (1:3.8-33ubuntu3.1) ... 正在设置 libjsoncpp1:amd64 (1.7.2-1) ... 正在设置 libffi-dev:amd64 (3.2.1-4) ... 正在设置 llvm-3.8-dev (1:3.8-2ubuntu4) ... 正在处理用于 systemd (229-4ubuntu21.4) 的触发器 ... 正在处理用于 ureadahead (0.100.0-19) 的触发器 ... 正在处理用于 libc-bin (2.23-0ubuntu10) 的触发器 ...
第二步:下载python Python-2.7.9.tar.xz和Python-3.6.4.tar.xz的软件包
python Python-2.7.9.tar.xz 和 python Python-3.6.4.tar.xz
第三步:把下载的软件包放到指定目录(需要创建目录)
[email protected]:/$ cd ~/.pyenv [email protected]:~/.pyenv$ mkdir cache [email protected]:~/.pyenv$ mv /home/hgy/桌面/Python-2.7.9.tar.xz cache/ [email protected]:~/.pyenv$ mv /home/hgy/桌面/Python-3.6.4.tar.xz cache/ [email protected]:~/.pyenv$ cd cache/ [email protected]:~/.pyenv/cache$ ls Python-2.7.9.tar.xz Python-3.6.4.tar.xz
第四步:安装python2.7.9和3.6.4版本
-v 显示安装过程
[email protected]:~/.pyenv/cache$ pyenv install 2.7.9 -v Installing Python-2.7.9... patching file ./Lib/site.py patching file ./Lib/ssl.py ... ? [email protected]:~/.pyenv/cache$ pyenv install 3.6.4 -v Installing Python-3.6.4... patching file ./Lib/site.py patching file ./Lib/ssl.py ...
:设置默认版本并测试默认版本
[email protected]:~/.pyenv/cache$ pyenv global 3.6.4 [email protected]:~/.pyenv/cache$ python Python 3.6.4 (default, Sep 1 2018, 21:12:53) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
第六步:pyenv versions
[email protected]:~/.pyenv/cache$ pyenv versions system 2.7.9 * 3.6.4 (set by /home/hgy/.pyenv/version)
第七步:更新pyenv的数据库
[email protected]:~/.pyenv/cache$ pyenv rehash
原文地址:https://www.cnblogs.com/huanggaoyu/p/10056028.html
时间: 2024-10-08 04:49:23