搜尋

首頁  >  問答  >  主體

python 的 EOFError: EOF when reading a line 是什么原因?

在程序执行过程中,出现过如题的错误信息。

google了一些,好像是python或部署的原因,但是有这些错误信息:


   Traceback (most recent call last):

   ...

   File "/usr/local/lib/python2.7/urllib.py", line 84, in urlopen
    return opener.open(url)

  File "/usr/local/lib/python2.7/urllib.py", line 205, in open
    return getattr(self, name)(url)

  File "/usr/local/lib/python2.7/urllib.py", line 356, in open_http
    return self.http_error(url, fp, errcode, errmsg, headers)

  File "/usr/local/lib/python2.7/urllib.py", line 369, in http_error
    result = method(url, fp, errcode, errmsg, headers)

  File "/usr/local/lib/python2.7/urllib.py", line 663, in http_error_301
    return self.http_error_302(url, fp, errcode, errmsg, headers, data)

  File "/usr/local/lib/python2.7/urllib.py", line 632, in http_error_302
    data)

  File "/usr/local/lib/python2.7/urllib.py", line 659, in redirect_internal
    return self.open(newurl)

  File "/usr/local/lib/python2.7/urllib.py", line 205, in open
    return getattr(self, name)(url)

  File "/usr/local/lib/python2.7/urllib.py", line 356, in open_http
    return self.http_error(url, fp, errcode, errmsg, headers)

  File "/usr/local/lib/python2.7/urllib.py", line 369, in http_error
    result = method(url, fp, errcode, errmsg, headers)

  File "/usr/local/lib/python2.7/urllib.py", line 694, in http_error_401
    return getattr(self,name)(url, realm)

  File "/usr/local/lib/python2.7/urllib.py", line 758, in retry_http_basic_auth
    user, passwd = self.get_user_passwd(host, realm, i)

  File "/usr/local/lib/python2.7/urllib.py", line 787, in get_user_passwd
    user, passwd = self.prompt_user_passwd(host, realm)

  File "/usr/local/lib/python2.7/urllib.py", line 796, in prompt_user_passwd
    host))

EOFError: EOF when reading a line

这是权限问题?

到底是什么问题呢?

怪我咯怪我咯2802 天前2683

全部回覆(2)我來回復

  • 巴扎黑

    巴扎黑2017-04-17 11:27:43

    根據樓主在評論裡的回复,如果想繼續使用urllib的話,可以使用FancyURLopener並且自己定義一個prompt_user_password方法。

    urllib的易用性的確是經常為人所詬病.. 所以另外一個辦法是,換用一個更好用的庫。我推薦python-requests。用這個函式庫就可以這麼寫(複製自那個連結):

    >>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
    >>> r.status_code
    200
    >>> r.headers['content-type']
    'application/json; charset=utf8'
    >>> r.encoding
    'utf-8'
    >>> r.text
    u'{"type":"User"...'
    

    回覆
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 11:27:43

    安裝SublimeREPL,然後編譯python檔案的時候,可以選擇【Tools】--【sublimeREPL】--【python】--【Python – RUN current file】即可提示使用者輸入。應該可以解決sublime下面使用raw_input函數報錯的問題。

    回覆
    0
  • 取消回覆