【发布时间】:2021-09-17 17:40:18
【问题描述】:
我是 Python 新手,我正在尝试编写代码让我进入我的 gmail 收件箱,并遵循 Udemy 课程。我已经成功安装了 imapclient,并且导入 impapclient 并没有返回任何错误,所以我认为我没问题。
当我去写下一行代码conn = imapclient.IMAPClient('imap.gmail.com', ssl=True) 并输入它时,它给了我一个类型错误
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
conn = imapclient.IMAPClient('imap.gmail.com', ssl=True)
File "C:\Users\china\AppData\Local\Programs\Python\Python39\lib\site-packages\imapclient\imapclient.py", line 254, in __init__
self._imap = self._create_IMAP4()
File "C:\Users\china\AppData\Local\Programs\Python\Python39\lib\site-packages\imapclient\imapclient.py", line 288, in _create_IMAP4
return tls.IMAP4_TLS(self.host, self.port, self.ssl_context,
File "C:\Users\china\AppData\Local\Programs\Python\Python39\lib\site-packages\imapclient\tls.py", line 44, in __init__
imaplib.IMAP4.__init__(self, host, port)
File "C:\Users\china\AppData\Local\Programs\Python\Python39\lib\imaplib.py", line 202, in __init__
self.open(host, port, timeout)
TypeError: open() takes 3 positional arguments but 4 were given
我知道 ssl=True 和 'imap.gmail.com' 都是必需的参数,所以我没有尝试将任何一个都去掉。我只有两行代码,而且我正在按照 Udemy 课程中的确切代码进行操作,所以我不确定如何自己解决这个问题。
【问题讨论】:
-
我相信你有一个不支持 Python 3.9 的旧版本的
imapclient模块(具体来说,它不期望在 3.9 中添加到IMAP4.open()的timeout参数。 -
我昨天刚刚 pip 安装了 imapclient。检查后是最新的。