Linux CentOS安装Python3.7.3以及纠错

36 篇文章 1 订阅
5 篇文章 0 订阅

尝试在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,就没问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值