我安装了pytube,版本9.5.0。我需要在我的下载代码中包含错误处理,但是出现此错误而不是正常工作并传递到下一个视频:
NameError: name 'pytube' is not defined
它是指第41行:
except pytube.exceptions.VideoUnavailable:
我的代码如下:
while j < len(test_fold):
if len(test_fold[j]) > 6:
urls2 = url + test_fold[j]
test_List.append(urls2)
try:
yt=YouTube(test_List[j])
except pytube.exceptions.VideoUnavailable:
print 'unavailable'
except pytube.exceptions.RegexMatchError:
print 'regex error'
except pytube.exceptions.ExtractError:
print 'extract error'
t=yt.streams.filter(progressive=True, subtype='mp4').all()
t[0].download('/Volumes/LaCie/folder/test')
j+=1
我尝试添加
from pytube import exceptions
但这不能消除错误。关于如何解决此问题以便进行错误处理的任何见解?
答案 0 :(得分:0)
from pytube import exceptions
对您没有帮助,因为您要输入pytube.exceptions.VideoUnavailable
。前者表示“使exceptions
模块可用”,而后者表示“在pytube
模块内部,有一个名为exceptions
的模块,其中有一个名为{{1 }}”。但是您从未使VideoUnavailable
可用,仅使pytube
可用,因此您得到了exceptions
。
有两种方法可以解决您的问题:NameError
或except exceptions.VideoUnavailable
。首选后者,因为它更明确,并且避免了命名空间冲突:如果您有另一个带有import pytube.exceptions
子模块的模块,该怎么办?