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

18 投票
3 回答
23283 浏览
提问于 2025-04-20 17:35

我正在使用Tweepy这个工具向Twitter发送一些消息。结果我收到了一个很长的错误信息,最后停在了:

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这个调用上。我觉得random是Python的核心包的一部分,而不是Tweepy的一部分。

我把这个脚本交给了一个同事,他也用Pip安装了Tweepy,结果也遇到了同样的错误。这让我觉得Pip可能有问题。

我对Python还比较陌生(编程整体上也不太熟悉)。我查阅了其他关于“导入错误”的文章,但没有找到这个具体的问题。任何帮助都非常感谢。

3 个回答

1

因为经验不足,我无法评论。
我在一个文件夹里有一个叫 xyz.py 的文件,而当我尝试导入同名的模块(import xyz)时,就出现了错误。

请确保你没有保存任何名为 xyz.py 的文件,同时这个名字也有对应的 Python 模块。
这是我作为新手实验时发现的。

这种情况在 Python 3.8 也会发生。

4

确保你删除 random.py 文件,或者用其他名字覆盖它,然后再检查一下 "from random import random" 这行代码。

49

我搞明白了。 我在尝试写一个生成随机数的脚本时,创建了一个叫做'random.py'的Python文件。结果我在代码里用到'import random'的时候,它其实是导入了我自己写的这个文件,而不是Python自带的随机数库。这样就造成了冲突,因为我自己的文件里没有这个库的内容。

撰写回答