彈出的錯誤提示:
這個錯誤是初學者常犯的錯誤,在寫代碼時必定要注意:python
問題緣由:
Python默認是以ASCII做爲編碼方式的,若是在本身的Python源碼中(即便是註釋部分)包含了中文(或者其餘非英語系的語言),此時即便你把本身編寫的Python源文件以UTF-8格式保存了,但實際上,這依然是不行的函數
解決方法:
源代碼文件第一行添加:#coding:utf-8,這樣就能夠避免了,
也能夠改成,在第一行增長:#-- coding: UTF-8 –編碼
注:此語句必定要添加在源代碼的第一行。spa
幾個概念要先搞清楚:
•默認的python文件是採用ascii編碼的,在頭部加入# – coding: utf-8 – 則指定文件的編碼格式是utf-8,那麼就是說文件內你能夠用中文或其餘的文字了。
•cn = u」中文」,這個前綴u表明「中文」是採用unicode編碼,也就是cn並非string而是一個unicode。
•當你用print輸出的時候會自動根據本地的語言環境轉換成string。3d
這是彈出的問題界面,從問題界面中咱們能夠看到具體出錯是在哪一行出錯的。如圖中綠色框中即是代碼出錯的語句。根據提示的錯誤是傳入數據的類型不對,經過調整數據類型來解決問題。調試
例如:日誌
import tensorflow as tf import matplotlib.image as mpimg import matplotlib.pyplot as plt #加載圖像 filename ="MarshOrchid.jpg" image = mpimg.imread(filename) #建立tensorflow變量 x = tf.Variable(image,name='x') model = tf.initialize_all_variables() # ///////////////// 此時報錯IOError: broken data stream when reading image file
更改後code
import matplotlib.image as mpimg import matplotlib.pyplot as plt import tensorflow as tf #加載圖像 filename ="MarshOrchid.jpg" image = mpimg.imread(filename) #建立tensorflow變量 x = tf.Variable(image,name='x') model = tf.initialize_all_variables() # /////////////////////// 再也不報錯
這個錯誤分爲兩種狀況,一種狀況是運行時出現這個錯誤,另外一種狀況是運行時不彈出錯誤,可是在調試代碼時出現錯誤。下面根據兩方面來探討解決方法。
不管是調試仍是運行,若是單從錯誤看來是你使用的對象沒有定義,你須要檢查程序中函數是否寫正確。這一點是必需要作的。
狀況1:若是在運行時出現這個錯誤,這頗有多是你程序中某個單詞拼寫錯誤了,有時候函數名錯誤是不會出現紅色錯誤提示符的。則可根據下方給出的錯誤提示中的print type(XXX)找到問題所在,由於xxx 就是表明調用出錯的對象的名稱,就是報錯日誌所在行的代碼被調用的對象的名稱。
狀況2:在運行時不出現錯誤,調試時出錯誤。做爲程序猿,少則百行,多則數萬行的代碼都是要寫得,有時爲了減小錯誤,不少人都會選擇編寫完一個功能函數運行一下或者調試一下來看看總體有無拼寫錯誤。本人就喜歡有這個習慣。今天寫完一個函數,點運行時錯點了調試,當時感受反正你們都差很少,調試就調試吧,然而調試時居然蹦出這個錯誤,查了半天也不知爲何,由於這個錯誤蹦出的後半段與狀況1蹦出的錯誤不一樣,總體錯誤是:「Exception TypeError: TypeError("‘NoneType’ object is not callable",) in <function _remove at 0x7f44bbc436e0> ignored」試了半天才知道,原來我如今調試的程序中只有定義好的函數,並無對函數進行調用,就是由於這個緣由致使你在調試時出錯誤。因此你只要加上調用那部分函數的代碼就沒有問題了。對象