centos安装python3.7步骤及各种问题的解决方法

终于成功了! 从搭建centos7.6服务器到安装python3.7 ,折腾了我一个星期。看过无数的经验贴和博客,还看了很多Stack OverflowUnix & Linux Stack Exchange上面的很多解决办法,特此总结出这篇博客,一方面以留后用,另一方面也是想给大家参考一下。


1.安装相关依赖 

1.1

下载依赖的官方网站 https://pypi.org ,可以在这里面根据依赖包的名字搜索,下载需要的离线版本

yum install gcc openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

需要安装很多,如果编译安装python的时候出错了,就根据错误信息提示安装对应的依赖

1.2
在centos下安装python3.7.0以上版本时报错ModuleNotFoundError: No module named ‘_ctypes‘的解决办法:3.7版本需要一个新的包libffi-devel,安装此包之后再次进行编译安装即可:

yum install libffi-devel -y

2.下载
python官网下载地址
https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz


3.解压

tar -xf Python-3.7.0.tgz


4.安装编译

cd Python-3.7.0
./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl 
#第一个指定安装的路径,不指定的话,安装过程中可能软件所需要的文件复制到其他不同目录,删除软件很不方便,复制软件也不方便.
#第二个可以提高python10%-20%代码运行速度.
#第三个是为了安装pip需要用到ssl,后面报错会有提到.
make && make install      //安装、编译


5.添加软链接

ln -sv /usr/local/python3/bin/pip3 /usr/bin/pip
ln -sv /usr/local/python3/bin/python3 /usr/bin/python

如果显示文件或目录已存在,则应先删除之前的软链接

rm -rf /usr/bin/pip
rm -rf /usr/bin/python

然后再重新执行上面的添加软链接命令。

6.查看安装的python版本

python -V
pip -V


7.解决安装python3.7之后,yum无法使用问题

升级python后会发现yum命令不能够使用了,因为yum命令使用并且依赖python2.6,所以我们要更改它的参数,保存并退出

vim /usr/bin/yum

将第一行

#!/usr/bin/python

改成

#!/usr/bin/python2.7


8.使用yum 出现File "/usr/libexec/urlgrabber-ext-down", line 28 解决方案
使用

vi /usr/libexec/urlgrabber-ext-down

将第一行

#!/usr/bin/python

改为

#!/usr/bin/python2


9.CentOS7中安装pip的方法
安装epel-release

yum -y install epel-release

安装python-pip

yum -y install python-pip

下面这几个步骤可以根据需要来决定是否采用

修改pip源
cd ~  #回到家目录
mkdir .pip  #创建.pip目录
cd .pip
touch pip.conf  #创建pip.conf配置文件
vi pip.conf
#在配置文件中增加如下内容
[global]
index-url = http://pypi.douban.com/simple
[install]
trusted-host = pypi.douban.com
#配置文件保存
升级pip
pip install --upgrade pip
检查pip版本
pip --version

10.python3安装完,出现 No module named '_ssl',解决方案
1. 命令 rpm -qa | grep openssl 查看你系统的 openssl 版本
其中 openssl-1.0.***x86_64 和openssl-devel***x86_64 这两个是必须的,如果没有,就去下载。
修改文件: Python-3.7.0/Modules/Setup.dist  
        放开下面5行
        # Socket module helper for socket(2)
        _socket socketmodule.c    # 这行前面注释去掉
        # Socket module helper for SSL support; you must comment out the other
        # socket line above, and possibly edit the SSL variable:
        SSL=/usr/local/ssl              #前面注释去掉,并把路径改成/usr/local/     这点很关键
        _ssl _ssl.c \                                                    #前面注释去掉
            -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \        #前面注释去掉
            -L$(SSL)/lib -lssl -lcrypto                                      #前面注释去掉
开始重新安装 openssl
这个小问题的参考
https://blog.csdn.net/qq_42805358/article/details/103991134?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242


如果觉得有帮助,那就帮我点个赞吧,谢谢帅气/美丽的你


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值