Garbled output on ipython console

開發環境如下
MAC OS+Anaconda+Spyder(python 3.6.1)

之前iPython Console都好好的,可能最近升級Anaconda的關係?  部分error會輸出亂碼T_T
按照這篇how can I show all warnings in the iPython console in Spyder?升級qtconsole 也沒用

反正error跟SQL command有關,懶得再動整個Anaconda環境,就直接進Terminal用isql執行SQL command看詳細錯誤(−_−;) 
搞定XD

Can't open lib 'ODBC Driver 13 for SQL Server'

上一篇Install pyodbc on MAC 除了說明安裝方式,也提到無法import pyodbc時要怎麼解決
接下來就是寫程式

結果SQL連線馬上卡關,會遇到如下錯誤
('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 13 for SQL Server' : file not found (0) (SQLDriverConnect)")

弄了二天,剛安裝的driver或package都不知道亂裝了幾道  囧
在終端機下tsql指令也確實能連接資料庫並取回資料
tsql可以正常執行 isql卻不行嗚嗚

網路上大家說的freetds.conf、odbcinst.ini、odbc.ini也都設定了依舊無解(我懷疑是因為anconda的虛擬環境我不熟 >"<)
最終還是找到了勉強的解法,可以順利在Anconda下的Spyder繼續寫程式了
解法請參考文章PyODBC : can't open the driver even if it existsKaren Chang的回答

Install pyodbc on MAC

在MAC環境透過python連接SQL Server有二款知名的套件pyodbc、pymssql  微軟說明

安裝步驟如下
  • 打開終端機
  • 依序輸入這些指令
    brew update
    brew install unixodbc
    brew install freetds --with-unixodbc
    指令參考來源
    ps:brew update不一定要, 看個人
  • 繼續輸入conda指令 安裝pyodbc
    conda install -c anaconda pyodbc=4.0.16
    指令參考來源
  • 開啟IDE開始寫程式
    import pyodbc 確認是否安裝成功
  • 如果不成功會出現下列錯誤
    ImportError: dlopen(/Users/karenchang/anaconda/lib/python3.6/site-packages/pyodbc.cpython-36m-darwin.so, 2): Symbol not found: _PySlice_AdjustIndices
    Referenced from: /Users/karenchang/anaconda/lib/python3.6/site-packages/pyodbc.cpython-36m-darwin.so
    Expected in: flat namespace in /Users/karenchang/anaconda/lib/python3.6/site-packages/pyodbc.cpython-36m-darwin.so
  • 承上,解決方式為升級python至3.6.1以上
    像我本來是3.6.0 升級後就可以import pyodbc 了
    解決方式參考文章