ModuleNotFoundError: нет модуля с именем «apiclient» - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь запустить код Python, который поможет мне подключиться и извлечь данные из YouTube Data API v3.Однако в тот момент, когда я пытаюсь запустить код, в первой строке выдается следующая ошибка:

File "C:/Users/asaxena/Desktop/py4e/Social Media Data Analytics/youtube_search.py", line 3, in <module>
    from apiclient.discovery import build
ModuleNotFoundError: No module named 'apiclient'

Я уже установил google-api-python-client в свой рабочий каталог с помощью команды: pip install --upgrade google-api-python-client Но это не помогает мне в выполнении кода.

from apiclient.discovery import build
import argparse
import csv
import unidecode

def youtube_search(options):
    youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, developerKey=DEVELOPER_KEY)
    search_response = youtube.search().list(q=options.q, part="id,snippet", maxResults=options.max_results).execute()

    videos = []
    channels = []
    playlists = []

    csvFile = open('video_result.csv','w')
    csvWriter = csv.writer(csvFile)
    csvWriter.writerow(["title","videoId","viewCount","likeCount","dislikeCount","commentCount","favoriteCount"])

    for search_result in search_response.get("items", []):
        if search_result["id"]["kind"] == "youtube#video":
            title = search_result["snippet"]["title"]
            title = unidecode.unidecode(title)  # Dongho 08/10/16
            videoId = search_result["id"]["videoId"]
            video_response = youtube.videos().list(id=videoId,part="statistics").execute()
            for video_result in video_response.get("items",[]):
                viewCount = video_result["statistics"]["viewCount"]
                if 'likeCount' not in video_result["statistics"]:
                    likeCount = 0
                else:
                    likeCount = video_result["statistics"]["likeCount"]
                if 'dislikeCount' not in video_result["statistics"]:
                    dislikeCount = 0
                else:
                    dislikeCount = video_result["statistics"]["dislikeCount"]
                if 'commentCount' not in video_result["statistics"]:
                    commentCount = 0
                else:
                    commentCount = video_result["statistics"]["commentCount"]
                if 'favoriteCount' not in video_result["statistics"]:
                    favoriteCount = 0
                else:
                    favoriteCount = video_result["statistics"]["favoriteCount"]

            csvWriter.writerow([title,videoId,viewCount,likeCount,dislikeCount,commentCount,favoriteCount])

    csvFile.close()

В конце я смогу установить успешное соединение с YouTube Data API v3и извлеките данные в CSV-файл.

Ответы [ 2 ]

1 голос
/ 14 апреля 2019

Я решил это:

  1. Я вручную установил «google-api-python-client-master» отдельно в своем рабочем каталоге, а затем запустил: «setup.py install» из командной строки.

  2. Затем я вручную установил «Unidecode-master» отдельно в разархивированную папку «google-api-python-client-master» и затем запустил: «setup.py install» из командной строки.

  3. Затем я запустил приведенный выше код, и он заработал.

Полагаю, вам придется устанавливать папки API отдельно, иначе это не сработает. Надеюсь, что это полезно.

0 голосов
/ 13 апреля 2019

Вы импортируете несуществующий модуль.Согласно документации здесь вы должны использовать:

from googleapiclient.discovery import ...

вместо:

from apiclient.discovery import ...
...