最近在Linode上弄Python、出現ValueError: zero length field name in format這樣的錯誤;
翻看文檔之后發現只要升級Python到2.7以上版本就能解決問題。
用 Pythno -V 看了一下目前Centos上的版本是2.6的。
CentOS6系列里面默認安裝的都是Python2.6的版本
所以我們可能會出現這樣的錯誤
ValueError: zero length field name in format
這個時候我們就需要把Pythno2.6升級到Python2.7以上的版本
升級Python
系統默認安裝的Python是2.6.x的,我們需要升級到Python2.7,用wget命令從官方下載源文件,然后解壓進行編譯
1
2
3
|
wget https: //www .python.org /ftp/python/2 .7.13 /Python-2 .7.13. tar .xz unxz Python-2.7.13. tar .xz tar -vxf Python-2.7.13. tar |
執行完以上命令會解壓得到Python-2.7.13這個文件夾,進入該目錄并執行以下命令進行配置
./configure --enable-shared --enable-loadable-sqlite-extensions --with-zlib
執行
vim ./Modules/Setup
找到#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz去掉注釋并保存,然后進行編譯和安裝
make && make install
安裝好Python2.7之后我們需要先把Python2.6做個備份
執行以下命令,對Python2.6進行備份,然后為Python2.7創建軟鏈接、把Python2.7作為默認Python來用
1
2
|
mv /usr/bin/python /usr/bin/python2 .6 ln -s /usr/local/bin/python2 .7 /usr/bin/python |
然后編輯/usr/bin/yum,將第一行的#!/usr/bin/python修改成#!/usr/bin/python2.6.6
現在執行yum命令已經不會出現之前的錯誤信息了。
我們執行python -V查看版本信息,如果出現錯誤
error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
編輯配置文件
vim /etc/ld.so.conf
查看是否有 /usr/local/lib,沒有的話請添加一行、保存退出;
然后刷新配置
1
2
|
/sbin/ldconfig /sbin/ldconfig - v |
PS:如果你原來在python2.6環境中安裝了Pip的話、是需要重新安裝
PS2:如果你原來用pip install xxx 安裝了第三方庫的話也是需要重新安裝的
原文鏈接:http://www.hiadmin.org/2017/07/09/centos-update-python/