openstack後台使用某些命令的時候,比如glance image-list |grep ***、neutron ***-list |grep ***的時候,報錯「『ascii』 codec can』t encode characters in position 2689-2698: ordinal not in range(128)」
python在安裝時,預設的編碼是ascii,當程式**現非ascii編碼時,python的處理常常會報這樣的錯unicodedecodeerror: 『ascii』 codec can』t decode byte 0x?? in position 1: ordinal not in range(128),因此python沒辦法處理非ascii編碼,此時需要重新設定python的預設編碼,一般設定為utf8的編碼格式。
檢視系統當前的python編碼,可以按照如下方式:
1、直接輸入「python」命令(針對python2.x),進入python命令列;
2、在python命令列,輸入以下命令匯入sys:
>>
>
import sys
>>
>
reload
(sys)
(built-in)
>
3、最後輸入命令「sys.getdefaultencoding()」即可查詢到當前python環境的預設編碼:
>>
> sys.getdefaultencoding(
)'utf8'
方案一:用函式sys.setdefaultencoding()臨時修改編碼1、直接輸入「python」進入python命令列;
2、分別輸入「import sys」、「reload(sys)」匯入sys;
3、輸入「sys.setdefaultencoding(『utf8』)」設定預設編碼為utf8;
[root@node-1 ~]
# python
python 2.7.5 (default, nov 6 2016, 00:28:07)
[gcc 4.8.5 20150623 (red hat 4.8.5-11)] on linux2
type
"help",,
"credits" or "license"
for more information.
>>> import sys
>>> reload(sys)
'sys'
(built-in
)>
>>> sys.getdefaultencoding(
)'ascii'
>>> sys.setdefaultencoding(
'utf8'
)>>> sys.getdefaultencoding(
)'utf8'
>>> exit
()
此時在執行sys.getdefaultencoding()就會發現編碼已經被設定為utf8的了,但是在直譯器裡修改的編碼只能保證當次有效,在重啟直譯器後,會發現,編碼又被重置為預設的ascii了。
此時可以按照方案二永久修改python編碼為utf8.
方案二:建立sitecustomize.py檔案永久修改編碼
1、進入python的預設lib庫
[root@node-1 ~]
# cd /lib/python2.7/site-packages/
[root@node-1 site-packages]
# pwd
/lib/python2.7/site-packages
[root@node-1 site-packages]
#
2、建立檔案sitecustomize.py
[root@node-1 site-packages]
# vim sitecustomize.py
3、在檔案sitecustomize.py中新增以下內容
import sys
reload(sys)
sys.setdefaultencoding(
'utf8'
)
wq儲存退出。
此時再重啟python直譯器,執行sys.getdefaultencoding(),發現編碼已經被設定為utf8的了,多次重啟之後,效果相同。這是因為系統在python啟動的時候,會自行呼叫sitecustomize.py這個檔案,來設定系統的預設編碼,而不需要每次都手動的加上解決**,屬於一勞永逸的解決方法。
再次使用grep命令過濾,即可正常顯示結果。
使用rdo安裝openstack
1 安裝最新的openstack rdo的yum源 yum install y 2 安裝openstack packstack yum install y openstack packstack 3 安裝openstack packstack allinone 4 待安裝完成後 source roo...
配置openStack使用spice
注 因為在測試配置過程中反覆配置過多次,以下內容可能並不完整,有待驗證。按官方文件 openstack install guide yum juno 搭建和配置的openstack預設使用novnc作為雲主機的控制台訪問方式,如果需要配置使用gui的作業系統,會顯得比較尷尬。所以嘗試配置使用spic...
使用RDO安裝openstack
2018.04.02 15 13 03字數 351閱讀 1251 1 安裝最新的openstack rdo的yum源 yum install y 2 安裝openstack packstack yum install y openstack packstack 3 安裝openstack packs...