ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

[python] 安装流程-centos

2020-10-31 20:01:08  阅读:196  来源: 互联网

标签:bin centos python 流程 -- usr pip root


前言

本篇介绍一下python在Linux(Centos)上的安装方法

正文

源码安装

源码安装是python安装方法中最正规的方法,如果熟练掌握可以在系统中安装多个不同的版本

下载安装包

进入网站 https://www.python.org/downloads/, 选择对应版本的python包进入其下载页面, 下载对应的包(这里主要有两种格式的包,哪种都可以)

解压安装包

使用以下命令去解压对应格式的安装包

tar zxvf Python-2.7.14.tgz
tar vxf Python-3.6.4.tar.xz

环境准备

创建python的安装路径

使用以下语句创建一个python的安装目录

mkdir /data/python-2.7.14
mkdir /data/python-3.6.4

准备需要的系统包

python需要依赖一系列的系统包,使用以下语句基本可以覆盖到依赖

yum install gdbm gdbm-devel zlib-devel bzip2-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc xz-devel bsddb openssl-devel

安装python

configuration

进入到安装包目录,并运行以下命令(--prefix指定了安装路径)

./configure --prefix=/data/python-2.7.14
./configure --prefix=/data/python-3.6.4

make

编译python

make
make

make install

安装python到安装目录

make install
make install

此时可以看到/data/python-2.7.14结构如下

|-- bin
|   |-- 2to3
|   |-- idle
|   |-- pydoc
|   |-- python -> python2
|   |-- python2 -> python2.7
|   |-- python2.7
|   |-- python2.7-config
|   |-- python2-config -> python2.7-config
|   |-- python-config -> python2-config
|   `-- smtpd.py
|-- include
|   `-- python2.7
|-- lib
|   |-- libpython2.7.a
|   |-- pkgconfig
|   `-- python2.7
`-- share
    `-- man

/data/python-3.6.4结构如下

|-- bin
|   |-- 2to3 -> 2to3-3.6
|   |-- 2to3-3.6
|   |-- easy_install-3.6
|   |-- idle3 -> idle3.6
|   |-- idle3.6
|   |-- pip3
|   |-- pip3.6
|   |-- pydoc3 -> pydoc3.6
|   |-- pydoc3.6
|   |-- python3 -> python3.6
|   |-- python3.6
|   |-- python3.6-config -> python3.6m-config
|   |-- python3.6m
|   |-- python3.6m-config
|   |-- python3-config -> python3.6-config
|   |-- pyvenv -> pyvenv-3.6
|   `-- pyvenv-3.6
|-- include
|   `-- python3.6m
|-- lib
|   |-- libpython3.6m.a
|   |-- pkgconfig
|   `-- python3.6
`-- share
    `-- man

安装pip

从上一步可以看到,python2并没有安装pip,所以我们需要手动安装pip,pip也有多种安装方法

命令安装

进入/data/python-2.7.14/bin, 执行以下语句, 将get-pip.py下载到目录下

wget https://bootstrap.pypa.io/get-pip.py
使用2.7.14版本的python执行文件运行文件
./python get-pip.py
如下输出表示安装成功

Collecting pip
Using cached pip-9.0.1-py2.py3-none-any.whl
Collecting setuptools
Downloading setuptools-38.5.1-py2.py3-none-any.whl (489kB)
    100% |████████████████████████████████| 491kB 257kB/s 
Collecting wheel
Using cached wheel-0.30.0-py2.py3-none-any.whl
Installing collected packages: pip, setuptools, wheel
Successfully installed pip-9.0.1 setuptools-38.5.1 wheel-0.30.0

此时可以看到此时当前目录下多了pip的执行文件

|-- bin
|   |-- 2to3
|   |-- easy_install
|   |-- easy_install-2.7
|   |-- get-pip.py
|   |-- idle
|   |-- pip
|   |-- pip2
|   |-- pip2.7
|   |-- pydoc
|   |-- python -> python2
|   |-- python2 -> python2.7
|   |-- python2.7
|   |-- python2.7-config
|   |-- python2-config -> python2.7-config
|   |-- python-config -> python2-config
|   |-- smtpd.py
|   `-- wheel
|-- include
|   `-- python2.7
|-- lib
|   |-- libpython2.7.a
|   |-- pkgconfig
|   `-- python2.7
`-- share
    `-- man
源码安装
waiting

链接执行文件

安装完成之后,需要将这两种可执行文件放入环境变量中, 这里有两种方法

1. 将安装路径添加到环境变量中
2. 将可执行文件链接到path下的某个目录

其中第一种方法比较难于管理,因为安装路径下有很多python,并且系统中也自带python。所以这里选择第二种方法,将执行文件放到/usr/bin下(也可以放到其他位置)。

链接之前,先看一下/usr/bin目录下的python和pip的情况

ll /usr/bin/python*
ll /usr/bin/pip*
得到结果

lrwxrwxrwx 1 root root    7 Dec 11 20:40 /usr/bin/python -> python2
lrwxrwxrwx 1 root root    9 Dec 11 20:40 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 7136 Aug  4  2017 /usr/bin/python2.7
-rwxr-xr-x 1 root root 208 Feb  8 22:47 /usr/bin/pip
-rwxr-xr-x 1 root root 208 Feb  8 22:47 /usr/bin/pip2
-rwxr-xr-x 1 root root 208 Feb  8 22:47 /usr/bin/pip2.7

可以看到目录下已经存在python和pip, 这里的pip是我自己安装的可以忽略,系统默认是没有的。但是python是系统默认的,这里需要把它们覆盖掉
执行下面的命令将新的python链接到/usr/bin

ln -sf /data/python-2.7.14/bin/python /usr/bin/python
ln -sf /data/python-2.7.14/bin/pip /usr/bin/pip
ln -sf /data/python-3.6.4/bin/python3 /usr/bin/python3
ln -sf /data/python-3.6.4/bin/pip3 /usr/bin/python3
再次运行之前的命令查看/usr/bin目录下的python和pip的情况, 得到结果

lrwxrwxrwx 1 root root   30 Feb  8 23:13 /usr/bin/python -> /data/python-2.7.14/bin/python
lrwxrwxrwx 1 root root    9 Dec 11 20:40 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 7136 Aug  4  2017 /usr/bin/python2.7
lrwxrwxrwx 1 root root   30 Feb  8 23:16 /usr/bin/python3 -> /data/python-3.6.4/bin/python3
lrwxrwxrwx 1 root root  27 Feb  8 23:13 /usr/bin/pip -> /data/python-2.7.14/bin/pip
-rwxr-xr-x 1 root root 208 Feb  8 22:47 /usr/bin/pip2
-rwxr-xr-x 1 root root 208 Feb  8 22:47 /usr/bin/pip2.7
lrwxrwxrwx 1 root root  29 Feb  8 23:14 /usr/bin/pip3 -> /data/python-3.6.4/bin/pip3.6

可以看到此时执行文件都已经链接到目录下,试着执行python, python3命令是否成功

修改yum

上一步完成之后python的安装已经成功,但是会有一个问题,如果此时执行yum的话会失败。因为yum引用的是老版本的/usr/bin/python,我们已经把它覆盖掉了,所以接下来需要将yum引用到原来的python中去
运行命令

vim /usr/bin/yum
修改首行

#!/usr/bin/python -> #!/usr/bin/python2.7

运行命令

vim /usr/libexec/urlgrabber-ext-down
修改首行

#! /usr/bin/python -> #! /usr/bin/python2.7

标签:bin,centos,python,流程,--,usr,pip,root
来源: https://www.cnblogs.com/joukosusi/p/13907310.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有