【问题标题】:"AttributeError: partially initialized module 'pytube' has no attribute 'YouTube' (most likely due to a circular import)" [duplicate]\“AttributeError:部分初始化模块 \'pytube\' 没有属性 \'YouTube\'(很可能是由于循环导入)\”[重复]
【发布时间】:2022-12-11 17:02:41
【问题描述】:

这是代码:

import pytube as p
video_url = input("Enter the link: ")
youtube = p.YouTube(video_url)
filters = youtube.streams.filter(progressive=True, file_extension="mp4")
filters.get_highest_resolution().download("MyPath")

我试图编写代码来下载 YouTube 视频。但它抛出一个错误说:

AttributeError:部分初始化的模块“pytube”没有属性“YouTube”(很可能是由于循环导入)`

我什至从互联网上复制粘贴代码,重新安装 Python,并重新安装 pytube,但都没有用。更令人沮丧的是,几个月前我执行它时它运行良好。

【问题讨论】:

  • 请勿贴图片、贴代码和错误信息! minimal reproducible example
  • 更改文件名。
  • @nfn 应该是正确的,如果在更改文件名后你得到不同的错误,您必须编辑答案才能为您提供帮助。
  • 好的,我不会发布图片。这是我第一次在这里提问。是的,我确实更改了文件名。错误没有改变
  • 我的建议:搜索 C 盘并删除所有文件“pytube.py”。之后安装我的版本:!pip install git+https://github.com/JNYH/pytube。更多信息:github.com/JNYH/pytube/blob/master/pytube_sample_code.ipynb

标签: python importerror pytube


【解决方案1】:

AttributeError:部分初始化的模块“pytube”没有属性“YouTube”(很可能是由于循环导入)

您是否注意到您的文件是如何命名的? pytube.py。这可能导致了 circular import,因为 Python 正在尝试 import pytube.py 文件本身。


我建议您阅读thisthis,第一个正是您的情况。


所以简短的回答是:

更改文件名!

当我说改变我的意思是你必须改名您的文件,而不是创建新文件。

【讨论】:

  • 感谢您的答复。但是我确实注意到了它并且我更改了名称但是它没有用:(
  • 你得到同样的错误?这很奇怪,你能用你尝试过的和你得到的来编辑你的答案吗?
  • 是的,我遇到了同样的错误。我把文件名改成videodownload.py 报错没变
  • 尝试将其更改为 myFileWithUnusualName.py,因为可能有一个名为 videodownload 的模块由 pytube 导入,具有下载视频的范围。
  • 好吧,我会试试看,然后告诉你
猜你喜欢
  • 1970-01-01
  • 2021-09-12
  • 2021-09-24
  • 2021-07-18
  • 2021-11-13
  • 2020-06-14
  • 2021-02-14
  • 2021-08-01
  • 1970-01-01
相关资源
最近更新 更多