Tweepy:导入错误:无法导入名称Random。

18

我正在使用Tweepy向Twitter发送一些消息。API返回了一长串的回溯信息,其中最后一条是:

ImportError: cannot import name Random

我使用Pip安装了最新版本的Tweepy:

Name: tweepy
Version: 2.3.0
Location: /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Requires:

当我打电话时

import tweepy
我获得了这个回溯信息:
Traceback (most recent call last):
  File "/Users/dromard/Projects/Drop Playlist/drop.py", line 4, in <module>
    import tweepy
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tweepy/__init__.py", line 14, in <module>
    from tweepy.api import API
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tweepy/api.py", line 8, in <module>
    from tweepy.binder import bind_api
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tweepy/binder.py", line 5, in <module>
    import httplib
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 79, in <module>
    import mimetools
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/mimetools.py", line 6, in <module>
    import tempfile
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/tempfile.py", line 35, in <module>
    from random import Random as _Random
ImportError: cannot import name Random

Process finished with exit code 1
我正在使用PyCharm工作,并在设置中确认了站点包和Python路径正确。我在控制台中手动检查了路径是否正确,没有重复的位置。
我没有对Tweepy进行任何更改。我让Pip在原地安装它。权限看起来是正确的。
-rw-r--r--   1 root  wheel
如果我在控制台中检查Python:
- 我会得到相同的回溯
- 当我运行单个导入时,它们都可以执行而没有错误
所有问题都出在random调用上。我认为随机数是Python核心包的一部分,而不是Tweepy的一部分。
我把这个脚本交给了一个同事,然后他使用Pip安装tweepy并遇到了相同的回溯。这让我认为Pip可能是有贡献的。
我对Python(以及编程)比较新手。我查看了其他“导入错误”文章,但没有找到这个特定问题。感谢任何帮助。

如果你在终端中的 Python 提示符下运行 from random import Random as _Random,会发生什么? - MattDMo
@MattDMo 我得到了这个 `>>> import random 9
from random import Random as _Random Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: 无法导入名称Random `
- Damian Romard
可能是重复的问题:from Crypto import Random -> ImportError: cannot import name Random。请参考@phihag的答案和关于重复文件名的讨论。 - jww
3个回答

48

我理解了这个问题。 在尝试生成随机数的脚本过程中,我创建了一个名为“random.py”的Python文件。我的“import random”调用抓取了这个文件,但它缺少Random库。这导致与正确的“random”产生冲突。


1
因为当我把项目文件夹交给他时,那个旧的“random.py”文件在里面。 - Damian Romard
如果您在执行后收到“bad magic number in ...”错误信息,那么这意味着您的项目中存在名为“random.pyc”的文件。 - Smily

4

请确保删除random.py文件或用另一个名称覆盖它,然后重新检查"from random import random"。


1
由于经验不足,我无法发表评论。我在一个目录中有一个名为xyz.py的文件,并调用了同名的模块(import xyz),导致出现了这个错误。
请确保不要保存任何与Python模块同名的xyz.py文件。这是我从我的新手实验中发现的。
这也会发生在Python 3.8中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接