Linux CentOS安装Python3.7.3以及纠错

简介: Linux CentOS安装Python3.7.3以及纠错

尝试在CentOS7上安装Python3.7,对一个新手来说,还是有挺多东西需要注意的。具体步骤如下:


1、下载

下载python3,wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

解压到本地目录,比如现在在/home/user1,会在当前目录产生一个Python-3.7.3目录。

tar -xzvf Python-3.7.3.tgz


2、make安装

进入Python-3.7.3目录,先configure

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

成功(此时已经将安装文件放到/usr/local的目录了)。


make && make install


麻烦了,出错了。提示:Module Not Found Error: No module named '_ctypes'

那么理论上我应该找到_ctypes才行。


查了一下csdn前辈们的足迹,原来3.7版本需要一个新的包libffi-devel,安装此包之后再次进行编译安装即可。这个问题归属于python的错误31652 https://bugs.python.org/issue31652

#yum install libffi-devel -y
    #make install


如果……又很不幸,先把原来的python2给删除了,恭喜,又中奖了。那么需要去centos.org上面找rpm包,以rpm方式安装libffi。这里不再赘述。当然,你在百度上面libffi centos rpm,就能在rpmfind.NET上找到下载,注意选择自己的操作系统版本啊。


查了一下这个issue,哇btw,Ubuntu也会出现问题的,这里有一个18版本的依赖大礼包:

> I expect that the root cause is missing libffi(-dev[el]) on your system
Yes, on my Ubuntu 18.04, `make` failed to compile _ctypes module.
After install libffi-dev, it was compiled successfully:
One more word, full necessary dependencies on my Ubuntu 18.04:
sudo apt-get install build-essential libsqlite3-dev sqlite3 bzip2 libbz2-dev zlib1g-dev libssl-dev openssl libgdbm-dev libgdbm-compat-dev liblzma-dev libreadline-dev libncursesw5-dev libffi-dev uuid-dev


如果libffi安装到了别的地方……参考以下:

 

the reason was that libffi was installed under /opt/local, so the fix was:
    ./configure LDFLAGS='-L/opt/local/lib -R/opt/local/lib'


3、建立快捷方式(链接)


完了么?没完。此时,/home/user1/python3.7.3中应该有python可执行程序了,但是系统可能还不知道,在任何一个目录输入python时,到make之后的目录找python程序。如果是系统自带,我的是python2.7,运行一下python,会告知你这是:2.7.5。或者python --version,可以看到输出版本号。


再找到软链接。查看python命令在当前系统对应哪一个文件。


>whereis python
python: /usr/bin/python ...

查看这个python对应的是什么 ls -al /usr/bin/python

/usr/bin/python -> python2


让我们用一个软链接指向新安装的python3这里吧。


mv  ./python pythonold
#将原来的python链接改名
cp /usr/local/python3.7.3/python3 /usr/bin/python3
#拷贝新的python到bin目录,这也是一个链接文件,指向的是local/python3.7.3下面的python3.7
ln -s ./python3 ./python
#如果连接文件已经有了,我也可以直接修改连接文件来建立链接
ln -snf /usr/local/python3.7.3/python3 /usr/bin/python


现在输入python看到version是3.7.3了。进入python解释环境之后:

>>import time
>>print(time)
<module‘time(built-in)’>
>>import sys
>>print(sys.path)
['', '/usr/local/python3.7.3/lib/........']


4、建立pip


还有一个东西没装,pip。在/usr/local/python3.7.3/bin下面可见pip3

ln -s /usr/local/python3.7.3/bin/pip3 /usr/bin/pip

#建立pip到pip3的链接


python3.7是没有安装numpy的,安装一个试试:

pip install numpy

如果正常的开始collecting,就没问题了。



目录
相关文章
|
1天前
|
Linux
linux之etcd安装
linux之etcd安装
|
1天前
|
消息中间件 Linux
centos7安装rabbitmq
centos7安装rabbitmq
|
2天前
|
NoSQL Linux Redis
linux之centos安装redis
linux之centos安装redis
|
1天前
|
Docker 容器
centos7.3之安装docker
centos7.3之安装docker
|
2天前
|
Linux Python
Linux之centos安装clinkhouse以及python如何连接
Linux之centos安装clinkhouse以及python如何连接
|
2天前
|
Linux
linux之centos安装dataease数据报表工具
linux之centos安装dataease数据报表工具
|
4月前
|
缓存 关系型数据库 MySQL
百度搜索:蓝易云【CentOS8服务器安装MySQL报错:no match mysql-community-server】
现在,你已经成功安装了MySQL服务器并解决了"no match mysql-community-server"的报错问题。祝你使用愉快!
90 1
|
3月前
|
Linux 数据库管理 Python
CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)
CentOS7编译安装Python3.10(含OpenSSL1.1.1安装),创建虚拟环境,运行Django项目(含sqlite版本报错)
545 4
|
1月前
|
网络协议 Linux
CentOS7 yum安装报错“Could not resolve host: mirrorlist.centos.org;"之解决办法(换源)
CentOS7 yum安装报错“Could not resolve host: mirrorlist.centos.org; Name or service not known“之解决办法(换源)
|
9月前
|
Linux Shell Swift
django(二)centos安装django3.2报错SQLite 3.8.3 or later is required (found 3.7.17)
我正在参加「掘金·启航计划」 Centos安装diango3.2框架请参照《django(一)ubuntu18.04安装框架》 在运行: 复制代码 python3 manage.py runserver 0.0.0.0:81 的时候报错: swift 复制代码 django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17). 报错的大体意思是:对sqlite最低版本的需求的3.8.3,但是现在只找到了3.7.17。
131 1