CentOS 7
Python 2.7.17
-
创建安装目录,下载解压安装包
su - root cd /opt mkdir -p /opt/Python/2.7.17 wget https://www.python.org/ftp/python/2.7.17/Python-2.7.17.tgz tar -xvf ./Python-2.7.17.tgz
-
安装依赖组件
yum install openssl-devel libffi-devel xz-devel -y yum install bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel -y yum install ncurses-devel libpcap-devel zlib-devel tk-devel -y yum install e2fsprogs-devel uuid-devel libuuid-devel -y
-
编译前配置
cd ./Python-2.7.17/ ./configure --prefix=/opt/Python/2.7.17 --enable-shared #或者打开优化选项 ./configure --prefix=/opt/Python/2.7.17 --enable-shared --enable-optimizations #注意,倘若后期运行Python应用遇到undefined symbol: PyUnicodeUCS...的错误, #则需据实际情况用加入如下选项重新编译 --enable-unicode=ucs4 或者 --enable-unicode=ucs2
判断当前的Python使用的编译选项中包含ucs4还是ucs2
import sys print(sys.maxunicode) 若结果为1114111,则代表编译时的选项为--enable-unicode=ucs4 若结果为65535则代表编译时的选项为--enable-unicode=ucs2
-
编译与安装
make make altinstall
-
更新动态链接库搜索路径
不建议以root身份在/etc/ld.so.conf.d/新增文件来添加自行编译的Python2.7的动态链接库路径
因为动态链接库重名,这会导致系统自带的Python2.7无法运行,进而会导致系统无法正常运行
建议新建一个专用的用户来运行自行编译的Python2.7,并通过修改.bashrc来设置环境变量LD_LIBRARY_PATH,指明动态链接库路径,示例如下su - dev #切换为普通用户 vi .bashrc #开始编辑.bashrc #新增内容如下 export PYTHON27_HOME=/opt/Python/2.7.17 export LD_LIBRARY_PATH=$PYTHON27_HOME/lib:$LD_LIBRARY_PATH export PATH=$PYTHON27_HOME/bin:$PATH
-
下载并安装pip
#切换为root su - root #临时修改环境变量,变更动态链接库搜索路径,让Python2.7.17可以正常运行 export PYTHON27_HOME=/opt/Python/2.7.17 export LD_LIBRARY_PATH=$PYTHON27_HOME/lib:$LD_LIBRARY_PATH cd /opt/Python/2.7.17/bin curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py ./python2.7 ./get-pip.py rm ./get-pip.py -f #用完可以删除 #退出登录 exit
-
修改pip下载源为清华大学的软件源 (可选)
./pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
附录
将指定用户设置为sudoer
su - root
visudo
在打开的文件中,找到如下内容
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
在此处追加一行
具体的用户名 ALL=(ALL) ALL
随后保存并退出即可