Last Updated: 2023-09-30 09:27:03 Saturday
-- TOC --
几乎所有Linux发行版本都自带Python3,但编译安装有的时候还是必须的。
安装依赖和gcc
$ # CentOS
$ sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel expat-devel gdbm-devel xz-devel db4-devel libpcap-devel
$ # Ubuntu
$ sudo apt install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libbz2-dev zlib1g-dev libffi-dev liblzma-dev libexpat1-dev
$
$ sudo yum install gcc # install gcc in centos
$ sudo apt install gcc # install gcc in ubuntu
$ which gcc # check if gcc is there
$ gcc --version # check gcc version
下载源码
略
配合和编译
$ cd Python-3.7.3
$ ./configure --prefix=/usr/local/python-3.7 --enable-optimizations
$ make && sudo make install
按需创建符号链接
略
用ldd命令查看python3程序依赖的动态链接库。不知道为什么,用ldd查看手动编译的python二进制文件,看到的.so文件比用ldd查看系统自带的python文件,.so文件少两个?不一致?
Linux系统下编译安装的特别注意事项
特别是Ubuntu系统!
尽量不要修改原系统的/usr/bin/python3这个符号链接,新的python版本,带上小版本好,比如/usr/bin/python3.8,保持系统原来的python3不变!(我现在认为,这也许才是正确的在Linux系统中安装自己编译的python的好方法,这样可以实现更多版本的并存)
如果修改了源Ubuntu系统的/usr/bin/python3这个符号链接,在后续使用系统的过程中,可能会出现各种莫名其妙的问题。比如lsb_release执行失败,terminial窗口打不开,ufw不能用等等。。。
本文链接:https://cs.pynote.net/sf/python/202111242/
-- EOF --
-- MORE --