Python程式設計實務–勘誤表

感謝一些讀者的來函,以下是目前知道的一些書本排版上或是未加註的注意訊息:

  • 在本書編寫的時候Windows下直接使用pip並無法順利安裝matplotlib,但是現在已經可以了,所以如果是使用Windows作業系統的讀者要使用matplotlib繪圖的話,可以試著先以pip安裝numpy以及matplotlib,真的不行再安裝Anaconda。
  • 本書大部份的範例程式均是在Mac OS之下完成,因此在分析路徑位址時,有時候為了求方便而直接使用字串分析的split函數,而事實上,在os模組中的os.path.split()以及os.path.join()用來拆解以及串接路徑字串則更具有相容性喔。
  • P.5-15:有些讀者在Windows下無法使用WMI是因為沒有正確安裝的關係。除了使用pip install wmi之外,還需要再到https://sourceforge.net/projects/pywin32/files/pywin32/下載正確版本的pywin32執行安裝之後,WMI才可以順利地執行。
  • P.6-8:程式 prints.capitalize(),少了一個空格,應為:print s.capitalize()
  • P.16-21:如果在安裝psycopg2有問題,Ubuntu作系統請執行sudo apt-get install libpq-dev python-dev,把必要的程式庫先裝進作業系統中即可。
  • P10-34:程式10-6的第一行右側,應為_*_
  • 圖10-27標題應為:透過Firebug分析網頁元素
  • 10-3節透過Python操作瀏覽器一節,使用Selenium操作Firefox,由於Firefox改版之後和目前的Selenium並不直接相容,因此程式需做一些調整(無法直接以web = webdriver.Firefox()直接啟用)。Firefox的官方網站有完整的改版說明。不過,應作者測試之後,許多函數還是有相容性上的問題,建議還是把Firefox降版到46,就可以解決問題了。
  • Django網站中的models.py中的Model在定義class時如果希望其物件傳回指定的變數內容,我們在書中的範例程式使用了def __unicode__(self):,在Python 2.x時可以正常運作,但是如果讀者使用的是Python 3.x,則請改為def __str__(self)才行。
  • p13-29頁中程式如果input()在你的系統上執行有問題,請改為raw_input()即可,另外中文字串常數如果無法正確處理,在””之前加個u,變成u”這是字串”,這樣也可以試試。
  • p11-32:python-firebase似乎是修正了錯誤,因此新安裝的朋友可以直接使用,不要修改firebase.py的內容試試看,程式碼如下(Python 2.7.6/Ubuntu 16.04):
from firebase import firebase
fdb = firebase.FirebaseApplication(‘https://python02.firebaseio.com’, None)
auth = firebase.FirebaseAuthentication(‘PWXszBlYky**********************OkmLGGnjrxDe’,
    ‘p179457@gmail.com’)
fdb.authentication = auth
print auth.extra
try:
    users = fdb.get(‘usr’, None)
    for key in users:
        print users[key][‘name’]
except:
    print “Authentication Fail!"