随笔 - 120  文章 - 0  评论 - 35  阅读 - 85万

在linux环境下安装python3.6

wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz --no-check-certificat

gunzip Python-3.6.1.tgz

tar xf Python-3.6.1.tgz

cd Python-3.6.1

mkdir /usr/local/python36

./configure --prefix=/usr/local/python36/

make && make install

然后出现报错:

zipimport.ZipImportError: can't decompress data; zlib not available

解决办法:

首先确认下是否安装了zlib、zlib-devel

[root@oracle Python-3.6.1]# pwd
/home/oracle/scripts/Python-3.6.1

然后cd Modules/

修改Setup(这是之后生成的文件)

找到下面这句,去掉注释 

#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

然后重新执行下面:

./configure --prefix=/usr/local/python36/

make && make install

注意:

这是没有make && make install之前

或者直接yum install -y zlib、zlib-devel,然后修改Modules/Setup.dist中:

找到下面这句,去掉注释 

#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

由于本身系统是2.x的版本:

[root@oracle Python-3.6.1]# mv /usr/bin/python /usr/bin/python_2.x

[root@oracle Python-3.6.1]# ln -sv /usr/local/python36/bin/python3 /usr/bin/python

python3 python3.6 python3.6-config python3.6m python3.6m-config python3-config
[root@oracle Python-3.6.1]# ln -sv /usr/local/python36/bin/python3.6 /usr/bin/python
`/usr/bin/python' -> `/usr/local/python36/bin/python3.6'
[root@oracle Python-3.6.1]# python
Python 3.6.1 (default, Jul 13 2017, 14:31:18)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

 

python3.6版本安装完成后,原有的yum会无法使用,进行下面修改:

编辑/usr/bin/yum的第一行:

#!/usr/bin/python2.6     改成这样就可以使用了

 

 

解决:ImportError: No module named '_sqlite3'

 

yum install sqlite-devel
然后重新编译python3.6
tar xf Python-3.6.1.tgz
cd Python-3.6.1

./configure --prefix=/usr/local/python36/
make && make install     

For multiple versions of Python, use altinstall instead of install.

由于该linux上存在多版本的python,所以改为:

make && make altinstall

[root@node1 Python-3.6.1]# python
Python 3.6.1 (default, Aug 16 2017, 16:05:59)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> import sqlite3
>>> exit()

 

 

posted on   wadeson  阅读(1494)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示