Получение NameError с pytube в строке обработки ошибок - PullRequest
1 голос
/ 04 июня 2019

У меня установлен 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 голосов
/ 15 июня 2019

from pytube import exceptions вам не поможет, потому что вы запрашиваете pytube.exceptions.VideoUnavailable. Первый означает «сделать модуль exceptions доступным», а второй означает «внутри модуля pytube, есть модуль с именем exceptions, внутри которого есть исключение с именем VideoUnavailable». Но вы никогда не делали pytube доступным, просто exceptions, поэтому вы получаете NameError.

Есть два способа исправить то, что у вас есть: либо except exceptions.VideoUnavailable, либо import pytube.exceptions. Последнее предпочтительнее, поскольку оно более явное и позволяет избежать конфликтов пространства имен: что если у вас есть другой модуль с субмодулем exceptions?

...