ModuleNotFoundError: No module named 'apiclient'
ModuleNotFoundError: No module named 'apiclient'
我正在尝试 运行 一个 python 代码来帮助我连接 YouTube 数据 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-客户端
但它对我运行宁代码没有帮助。
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 文件中提取数据。
您正在导入一个不存在的模块。根据文档 here 你应该使用:
from googleapiclient.discovery import ...
而不是:
from apiclient.discovery import ...
我解决了:
我在我的工作目录中单独手动安装了 "google-api-python-client-master",然后从命令行 运行: "setup.py install"。
然后我在解压缩的 "google-api-python-client-master" 文件夹中单独手动安装 "Unidecode-master",然后从命令行 运行: "setup.py install"。
然后我 运行 上面的代码,它起作用了。
我相信您必须单独安装 API 文件夹,否则将无法运行。希望这有用。
我正在尝试 运行 一个 python 代码来帮助我连接 YouTube 数据 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-客户端 但它对我运行宁代码没有帮助。
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 文件中提取数据。
您正在导入一个不存在的模块。根据文档 here 你应该使用:
from googleapiclient.discovery import ...
而不是:
from apiclient.discovery import ...
我解决了:
我在我的工作目录中单独手动安装了 "google-api-python-client-master",然后从命令行 运行: "setup.py install"。
然后我在解压缩的 "google-api-python-client-master" 文件夹中单独手动安装 "Unidecode-master",然后从命令行 运行: "setup.py install"。
然后我 运行 上面的代码,它起作用了。
我相信您必须单独安装 API 文件夹,否则将无法运行。希望这有用。