【问题标题】:Python 3.2 won't import cookielibPython 3.2 不会导入 cookielib
【发布时间】:2021-03-15 19:53:51
【问题描述】:

我到处寻找这个问题,但找不到答案。我检查了我的 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.

这不是我预期的错误,因为 import http.cookies 导入很好。

有人有解决这个问题的方法吗?我在看什么?

完全错误:

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

【问题讨论】:

    标签: python


    【解决方案1】:

    自动重命名业务仅适用于您使用2to3。因此,你必须import http.cookiejar

    错误 EOFError: EOF read where not expected 仅由 Python 编组抛出。这很可能是由竞争条件fixed in Python 3.3 引起的,其中多个进程试图同时写入 pyc 文件。删除所有 .pyc 文件可能是一种解决方法。

    【讨论】:

    • 对于以后遇到这种情况的人来说:重新安装 Python 似乎是一个激进的步骤。刚刚从导致EOFError 的任何库中删除.pyc 文件对我来说就足够了。
    • EOFError: 很可能是 3 个或更多 Python 进程读/写同一个 pyc 文件时的竞争条件。在 Python 3.3 中已修复:bugs.python.org/issue13146
    • @GuidovanRossum 感谢您的指点!我已经更新了答案。
    【解决方案2】:
    try:
        import cookielib
    except:
        import http.cookiejar
        cookielib = http.cookiejar
    

    【讨论】:

    • 是的!为这个 +1
    【解决方案3】:

    cookielib 模块在 Python 3.0 中已重命名为 http.cookiejar。 2to3 工具将在将您的源转换为 3.0 时自动调整导入。

    【讨论】:

    • 如果您提供一两个简短的示例,您的回答会更有帮助。
    【解决方案4】:

    我最初的猜测是您的库文件已损坏。在您的 Python 安装中,查看 lib/python3.2/http/cookiejar.py 并向下滚动到最后。我的 (Python 3.2.2) 以 save() 方法定义结束

    finally:
        f.close()
    

    如果您看到其他任何内容,您的安装可能已损坏,我建议您重新安装。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 2014-05-27
      相关资源
      最近更新 更多