【问题标题】:Why can't I import PyTube?为什么我不能导入 PyTube?
【发布时间】:2021-11-24 09:21:54
【问题描述】:

我想导入 PyTube,但不断收到此错误。我该如何解决?

代码:

import pytube
from pytube import YouTube

print("Give URL:")
url = input()

pytube.YouTube(url).streams.get_highest_resolution().download()

错误:

Traceback (most recent call last):
  File "pytube.py", line 1, in <module>
    import pytube
  File "/home/python/pytube.py", line 2, in <module>
    from pytube import YouTube
ImportError: cannot import name 'YouTube'

【问题讨论】:

  • 您将文件命名为 pytube.py。重命名它以修复错误。
  • @MichaelSzczesny 非常感谢!!!

标签: python api youtube pytube


【解决方案1】:

正如@Michael Szczesny 所说,您将执行的文件命名为与库相同的名称。将您的脚本重命名为其他名称,它应该可以工作。

Python 以特定顺序检查导入,可以在 sys.path 中看到:

import sys
print(sys.path)

就我而言,它给出了:

['', '/home/vinzee/.pyenv/versions/3.6.14/lib/python36.zip', '/home/vinzee/.pyenv/versions/3.6.14/lib/python3.6', '/home/vinzee/.pyenv/versions/3.6.14/lib/python3.6/lib-dynload', '/home/vinzee/.pyenv/versions/3.6.14/lib/python3.6/site-packages']

告诉我它首先在当前目录'' 中搜索,然后在'/home/vinzee/.pyenv/versions/3.6.14/lib/python36.zip' 等中搜索,最后在存储包文件的'/home/vinzee/.pyenv/versions/3.6.14/lib/python3.6/site-packages' 中搜索。

在您的情况下,由于脚本在它搜索的第一个目录中找到了pytube(即''),因此它没有费心检查列表的最后一个目录中是否有同名的包.它只是停在那里并尝试导入您自己的pytube.py 脚本。

【讨论】:

    猜你喜欢
    • 2018-08-30
    • 2020-12-23
    • 2018-01-12
    • 2020-04-24
    • 2017-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多