Linux(CentOS7)安装Python3和pip3并为pip换源

您所在的位置:网站首页 centos7安装python310没有ssl命令 Linux(CentOS7)安装Python3和pip3并为pip换源

Linux(CentOS7)安装Python3和pip3并为pip换源

2024-02-26 17:08| 来源: 网络整理| 查看: 265

centos7 自带有 python,版本是python2.7

接下来我们手动安装python3,并且配置后可以并存使用。

1.首先,你要知道系统现在的python的位置在哪儿:[root@root ~]# whereis pythonpython: /usr/bin/python2.7 /usr/bin/python /usr/lib/python2.7 /usr/lib64/python2.7 /etc/python /usr/include/python2.7 /usr/share/man/man1/python.1.gz可以知道我们的python在 /usr/bin目录中[root@root ~]# cd /usr/bin/[root@root bin]# ll python*lrwxrwxrwx. 1 root root 7 2月 7 09:30 python -> python2lrwxrwxrwx. 1 root root 9 2月 7 09:30 python2 -> python2.7-rwxr-xr-x. 1 root root 7136 8月 4 2017 python2.7可以看到,python指向的是python2,python2指向的是python2.7,因此我们可以装个python3,然后将python指向python3,然后python2指向python2.7,那么两个版本的python就能共存了。

2.因为我们要安装python3,所以要先安装相关包,用于下载编译python3:yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make 运行了以上命令以后,就安装了编译python3所用到的相关依赖

3.默认的,centos7也没有安装pip,不知道是不是因为我安装软件的时候选择的是最小安装的模式。#运行这个命令添加epel扩展源yum -y install epel-release

#安装pipyum install python-pip

4.用pip装wgetpip install wget

5.用wget下载python3的源码包(评论区网友提供了淘宝镜像,替换了官网下载python3,提高下载速度)wget http://npm.taobao.org/mirrors/python/3.7.5/Python-3.7.5.tar.xz

6.编译python3源码包#解压xz -d Python-3.7.5.tar.xztar -xf Python-3.7.5.tar

#进入解压后的目录,依次执行下面命令进行手动编译cd Python-3.7.5./configure prefix=/usr/local/python3make && make install

# 如果出现can't decompress data; zlib not available这个错误,则需要安装相关库#安装依赖zlib、zlib-develyum install zlib zlibyum install zlib zlib-devel如果最后没提示出错,就代表正确安装了,在/usr/local/目录下就会有python3目录

7.添加软链接#将原来的链接备份mv /usr/bin/python /usr/bin/python.bak

#添加python3的软链接ln -s /usr/local/python3/bin/python3.7 /usr/bin/python

#测试是否安装成功了python -V

8.更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用vi /usr/bin/yum把#! /usr/bin/python修改为#! /usr/bin/python2

vi /usr/libexec/urlgrabber-ext-down把#! /usr/bin/python 修改为#! /usr/bin/python2 启动python2:

 

启动python3:

 

附录:

关于,如何下载python3的pip模块,以及pip2和pip3的如何兼容使用,可以看我的另一篇文章:

下载pip模块以及pip2和pip3共存问题————————————————版权声明:本文为CSDN博主「大蛇王」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/t8116189520/article/details/81976755

 

====================================================================

 

文章目录安装Python3和pip3更换pip为阿里源常用源临时更改永久更改

当前CentOS7系统自带了python2.7.5,因为yum会用到python2,所以不能删除,此次安装了python3之后就保持两个版本长期共存吧本次安装采用的是下载python源码再编译的方式

下面的操作,按照步骤来就可以了,不要在中途cd 到别的文件目录下,要想查看效果可以用 ls加上对应的目录,不需要切换进去。

安装Python3和pip3首先进行yum更新

yum update -y1接着安装必要的软件

yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel libffi-devel sqlite-devel readline-devel tk-devel libffi-devel gcc make1查看现有python命令,这3个文件依赖关系很明显就可以看到

ls -l /usr/bin/python*

# 结果如下lrwxrwxrwx. 1 root root 7 1月 22 18:57 /usr/bin/python -> python2lrwxrwxrwx. 1 root root 9 1月 22 18:57 /usr/bin/python2 -> python2.7-rwxr-xr-x. 1 root root 7144 11月 17 06:23 /usr/bin/python2.7123456下载python源码压缩包,需提前安装wget工具

yum install -y wget

wget https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz123等待下载完成之后会在当前目录下出现一个tgz包,命令解压这个包到当前目录就可以

tar -xvzf Python-3.8.7.tgz1进入解压后的目录,执行编译前的configure操作,提前安装gcc编译器

yum install gcc

cd Python-3.8.7 && ./configure --with-ssl --prefix=/usr/local/python3123稍微解释执行./configure 的命令,目的就是把python的安装目录指定一下,这样的话,里面的一些bin目录、lib目录就都会存放在这个目录下面。如果不指定这个安装目录的话,最后python的安装文件将分散到linux的默认目录,不在一块。我们指定安装目录,以后卸载的话直接删除目录就可以干净卸载了。

编译源码,在Python-3.8.7目录执行以下命令

make && make install1编译成功后提示如下信息,setuptools和pip都已经部署成功

Processing /tmp/tmpl3pm5lx_/setuptools-49.2.1-py3-none-any.whlProcessing /tmp/tmpl3pm5lx_/pip-20.2.3-py2.py3-none-any.whlInstalling collected packages: setuptools, pipSuccessfully installed pip-20.2.3 setuptools-49.2.11234又是一大堆代码,执行完毕之后,我们就可以查看/usr/local/python3/目录了

ls -l /usr/local/python3

# 结果如下drwxr-xr-x. 2 root root 220 1月 22 19:36 bindrwxr-xr-x. 3 root root 23 1月 22 19:30 includedrwxr-xr-x. 4 root root 62 1月 22 19:36 libdrwxr-xr-x. 3 root root 17 1月 22 19:30 share1234567接下来我们还有一点善后工作——创建python3和pip3的软连接

ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3123此时在/usr/bin/目录下,查看文件关系如下

ls -l /usr/bin/python*

# 结果如下lrwxrwxrwx. 1 root root 7 1月 22 18:57 /usr/bin/python -> python2lrwxrwxrwx. 1 root root 9 1月 22 18:57 /usr/bin/python2 -> python2.7-rwxr-xr-x. 1 root root 7144 11月 17 06:23 /usr/bin/python2.7lrwxrwxrwx. 1 root root 32 1月 22 20:42 /usr/bin/python3 -> /usr/local/python3/bin/python3.81234567升级pip3

pip3 install --upgrade pip1更换pip为阿里源常用源清华源https://pypi.tuna.tsinghua.edu.cn/simplepypi.tuna.tsinghua.edu.cn阿里源https://mirrors.aliyun.com/pypi/simple/mirrors.aliyun.com豆瓣源http://pypi.douban.com/simplepypi.douban.com我在这里以阿里源为例

临时更改pip install -i https://mirrors.aliyun.com/pypi/simplepip install -i https://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com12永久更改首先创建.pip文件夹

mkdir ~/.pip1创建pip.conf配置文件

touch ~/.pip/pip.conf1修改pip.conf配置文件

vim ~/.pip/pip.conf

# 文件内容如下[global]index-url=https://mirrors.aliyun.com/pypi/simple/[install]trusted-host=mirrors.aliyun.com1234567至此,大功告成了!!!

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树预备知识安装Python58126 人正在系统学习中————————————————版权声明:本文为CSDN博主「Amosヾ」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_44924544/article/details/112993067

 

==========================================================

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel libffi-devel sqlite-devel readline-devel tk-devel libffi-devel gcc make

因为我们要安装python3,所以要先安装相关包,用于下载编译python3:yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make 运行了以上命令以后,就安装了编译python3所用到的相关依赖

————————————————

 

WARNING: Value for scheme.headers does not match. Please report this to distutils: /usr/local/python3.10.1/include/python3.10/UNKNOWNsysconfig: /usr/local/python3/Python-3.10.1/Include/UNKNOWNWARNING: Additional context:user = Falsehome = Noneroot = '/'prefix = NoneLooking in links: /tmp/tmph2hzr8z0Processing /tmp/tmph2hzr8z0/setuptools-58.1.0-py3-none-any.whlProcessing /tmp/tmph2hzr8z0/pip-21.2.4-py3-none-any.whlInstalling collected packages: setuptools, pip WARNING: Value for scheme.headers does not match. Please report this to distutils: /usr/local/python3.10.1/include/python3.10/setuptools sysconfig: /usr/local/python3/Python-3.10.1/Include/setuptools WARNING: Value for scheme.headers does not match. Please report this to distutils: /usr/local/python3.10.1/include/python3.10/pip sysconfig: /usr/local/python3/Python-3.10.1/Include/pip WARNING: The scripts pip3 and pip3.10 are installed in '/usr/local/python3.10.1/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.Successfully installed pip-21.2.4 setuptools-58.1.0WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv[root@localhost Python-3.10.1]# ping localhost

 

============================================================================

 

 

## 离线安装Python3

1.安装依赖环境

```sh

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

```

2.下载安装包

可以选择官网直接下载或者wget命令下载

* 官网(

* wget:

wget https://www.python.org/ftp/python/3.10.1/Python-3.10.1.tgz

3.解压

```sh

mkdir -p /usr/local/python3.10

tar -zxvf Python-3.9.0.tgz

```

4.编译安装

```sh

cd Python-3.10.1

./configure --prefix=/usr/local/python3.10

make && make install

```

5.配置环境变量

```sh

vi /etc/profile

export PYTHON_HOME=/usr/local/python3.10

export PATH=${PYTHON_HOME}/bin:$PATH

source /etc/profile

```

创建软连接

查看python指向:

```sh

ls -l /usr/bin | grep python

```

创建/usr/bin/python3

```sh

ln -s /usr/local/bin/python3.10/bin/python3 /usr/bin/python3 # 创建python3软连接

rm /usr/bin/python

ln -s /usr/bin/python3 /usr/bin/python

```

## 离线安装、迁移第三方模块

1.第三方模块下载

* 第三方模块下载可以直接下载whl文件,直接使用pip3 install

* 可在联网机器下载,迁移到离线服务器安装

下面主要介绍在在联网机器下载,迁移到离线服务器安装方式

如果新安装某一个模块,可以直接下载下来

```sh

pip3 download xxx -d /tmp/packages/

```

默认情况download是最新版本模块,但需要下载指定模块版本,例如:

```sh

pip3 download kafka-python==2.0.2 -d /tmp/packages/

```

* 查看已安装模块

```sh

pip3 list

Package Version

------------------ ---------

certifi 2021.10.8

charset-normalizer 2.0.9

idna 3.3

kafka-python 2.0.2

pip 21.2.4

pydruid 0.6.2

requests 2.26.0

setuptools 58.1.0

urllib3 1.26.7

```

* 将pip3 list的信息生成文档

```sh

pip3 freeze > requirements.txt

```

* 将requirement.txt文档中列出的模块信息下载到指定目录

```sh

# 第一种方式,推荐使用

pip3 download -r requirements.txt -d /tmp/packages/

# 第二种方式

pip3 install --download /tmp/packages -r requirements.txt

```

* 将下载好的模块copy到离线服务器

```sh

#是什么格式就安装什么格式的文件

pip3 install xxx.tar.gz

pip3 install xxx.whl

pip3 install xxx.xx

```

批量安装多个包和依赖包,所有文件放到一个目录中,进入这个目录执行命令

```sh

pip3 install ./*

```

issues:

issue1:pip3 安装依赖 ModuleNotFoundError: No module named '_ctypes'

解决方案

1.安装libffi-devel

```sh

yum install libffi-devel

```

2.重新编译安装

```sh

./configure --prefix=/usr/local/python3 --enable-optimizations

make && make install

```

---

issue2:No matching distribution found for request

```sh

Collecting request

Could not fetch URL https://pypi.python.org/simple/request/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:719) - skipping

Could not find a version that satisfies the requirement request (from versions: )

No matching distribution found for request

```

分析:网络原因导致

解决方案

```sh

pip3 install requests -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

```

issue3:pip3 install xxx.tar.gz 报连接错误

```sh

tar -zxvf xxx.tar.gz

cd xxx

python3 setup.py install

```————————————————版权声明:本文为CSDN博主「import80」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/qq_32613771/article/details/122160440



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3