2012-03-25 54 views
3

我已到處尋找這個,只是找不到答案。我檢查了我的python版本,它是3.2版本。當我嘗試導入cookielib我收到:Python 3.2將不會導入cookielib

ImportError: No module named cookielib

我已經看到,在Python 3.0它改名爲 http.cookiejar,它會自動導入cookielib

我想也許在我的python配置中出現了一些錯誤,所以我想我應該嘗試導入http.cookiejar這樣的import http.cookiejar。這並沒有工作,我得到和錯誤:

EOFError: EOF read where not expected

這不是我所期望的錯誤,因爲導入沒問題。

有沒有人有解決這個問題的辦法?我忽略了什麼?

完全錯誤:

Traceback (most recent call last): 
    File "C:\Users\Spencer\Downloads\selenium-2.20.0.tar\selenium-2.20.0\selenium-2.20.0\test", line 1, in <module> 
    import urllib.request, urllib.parse, http.cookiejar 
EOFError: EOF read where not expected 

回答

8

自動重命名業務僅適用於使用2to3。因此,您必須import http.cookiejar

錯誤EOFError: EOF read where not expected只有Python編組引發。最有可能的是,這是由競爭條件fixed in Python 3.3引起的,其中多個進程試圖同時寫入pyc文件。刪除所有.pyc文件可能是一種解決方法。

+0

對於那些未來遇到過這樣的問題:重新安裝Python似乎是一個非常激烈的步驟。剛剛從任何庫中刪除'.pyc'文件導致'EOFError'對我來說就足夠了。 – Dougal 2012-05-26 22:57:50

+1

EOFError:當3個或更多Python進程讀取/寫入相同的pyc文件時,極有可能是競態條件。在Python 3.3中修復:http://bugs.python.org/issue13146 – 2016-05-07 02:21:32

+0

@GuidovanRossum感謝您的指針!我已經更新了答案。 – phihag 2016-05-07 08:13:24

0

我最初的猜測是,你有一個損壞的庫文件。在您的Python安裝中,查看lib/python3.2/http/cookiejar.py並向下滾動到最後。礦(Python的3.2.2)與

finally: 
    f.close() 

,結束本save()方法定義如果別人看不到,您的安裝可能打破,我建議你重新安裝它。

+0

它看起來對我來說是正確的:http://pastebin.com/MJ1iS2Gt – Sneitzke38 2012-03-25 03:34:17

1

cookielib模塊已在Python 3.0中重命名爲http.cookiejar。將源代碼轉換爲3.0時,2to3工具將自動適應導入。

+0

如果您提供了一個或兩個簡短的例子,您的答案會更有幫助。 – 2017-07-03 21:43:14