0

我是 Python 新手。我正在尝试将 Python 2 代码转换为 Python 3。在我的旧代码中,我有以下几行:

# Create a cookiejar to store cookie
cj = cookielib.CookieJar()
# Create opener
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent', 'Mozilla/5.0')]

我已将这些行转换为:

# Create a cookiejar to store cookie
cj = cookielib.CookieJar()
# Create opener
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent', 'Mozilla/5.0')]

我遇到的问题是我不断收到以下错误: NameError: global name 'cookielib' is not defined

我不确定我做错了什么以及如何解决这个问题。有人可以帮帮我吗?非常感谢。

4

3 回答 3

1

你用过这个2to3工具吗?此外,使用 Python 文档,

注意 cookielib 模块在 Python 3 中已重命名为 http.cookiejar。2to3 工具将在将源代码转换为 Python 3 时自动调整导入。

看到您的评论后,问题是它是http.cookiejar而不是http.cookieJar

注意未大写的J.

于 2013-05-31T18:37:24.297 回答
0

我想我有解决办法。以下似乎有效: cj = http.cookiejar.CookieJar()

于 2013-05-31T18:37:08.063 回答
0

cookielib模块已http.cookiejarPython 3中重命名为,请参阅https://docs.python.org/2/library/cookielib.html

您可以使用该2to3工具将源代码转换为 Python 3,请参阅https://docs.python.org/2/library/2to3.html

于 2020-01-14T15:30:41.187 回答