在错误处理行上使用pytube获取NameError

时间:2019-06-03 22:08:51

标签: python pytube

我安装了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

但这不能消除错误。关于如何解决此问题以便进行错误处理的任何见解?

1 个答案:

答案 0 :(得分:0)

from pytube import exceptions对您没有帮助,因为您要输入pytube.exceptions.VideoUnavailable。前者表示“使exceptions模块可用”,而后者表示“在pytube模块内部,有一个名为exceptions的模块,其中有一个名为{{1 }}”。但是您从未使VideoUnavailable可用,仅使pytube可用,因此您得到了exceptions

有两种方法可以解决您的问题:NameErrorexcept exceptions.VideoUnavailable。首选后者,因为它更明确,并且避免了命名空间冲突:如果您有另一个带有import pytube.exceptions子模块的模块,该怎么办?