Tweepy 不会安装在 python 3.7 上;显示 "syntax error"

Tweepy won't install on python 3.7; shows "syntax error"

在开始之前,我想先声明一下,我对 python 比较陌生,在我的这个小项目之前没怎么用过它。我正在尝试制作一个 Twitter 机器人作为艺术项目的一部分,但我似乎无法导入。我使用的是 macOS High Sierra 和 Python 3.7。我首先使用

安装了 tweepy
pip3 install tweepy

这似乎有效,因为我能够在 finder 中找到 tweepy 文件。但是,当我简单地输入

import tweepy

进入 IDLE,我得到这个错误:

Traceback (most recent call last):
File "/Users/jacobhill/Documents/CicadaCacophony.py", line 1, in <module>
  import tweepy
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tweepy/__init__.py", line 17, in <module>
  from tweepy.streaming import Stream, StreamListener
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/tweepy/streaming.py", line 358
  def _start(self, async):
                         ^
SyntaxError: invalid syntax

知道如何解决这个问题吗?我查看了此处的其他帖子,其他错误似乎与 "tweepy module not found" 类似,所以我不知道如何处理我的错误。谢谢!

In Python3.7, async became a reserved word (as can be seen in whats new section here) 因此不能用作参数。这就是引发此 Syntax Error 的原因。

也就是说,和下面tweetpy的官方GitHub (here),只有

Python 2.7, 3.4, 3.5 & 3.6 are supported.


但是,如果您确实必须使用 Python3.7,则有一个解决方法。按照this的建议,您可以

open streaming.py and replace async with async_

它应该可以工作

使用 async 作为标识符 has been deprecated since Python 3.5, and became an error in Python 3.7,因为它是关键字。

这个 Tweepy 错误是 reported on 16 Mar, and fixed on 12 May, but there hasn't been a new release yet. Which is why, as the repo's main page says:

Python 2.7, 3.4, 3.5 & 3.6 are supported.


暂时可以安装开发版:

pip3 install git+https://github.com/tweepy/tweepy.git

或者,因为您已经安装了早期版本:

pip3 install --upgrade git+https://github.com/tweepy/tweepy.git

您也可以按照存储库中的说明进行操作:

git clone https://github.com/tweepy/tweepy.git
cd tweepy
python3 setup.py install

但是,这意味着 pip 可能无法完全理解您安装的内容。