2017-03-03 1 views
0

FileB.pyのコードはうまく動作しますが、他のファイルから呼び出しているときに一度失敗します。以下のコードで関数 "search_response"を呼び出すと動作が停止することがわかりました。他のファイルからのfunction1は、そのfunction1が別のfunction2をfunction1内で呼び出すときに失敗します。

FileA.py

from FileB import * 
search = "stackoverflow"  
searchF(search) 

FileB.py

from apiclient.discovery import build 
from apiclient.errors import HttpError 
from oauth2client.tools import argparser 

search = "Google"  
def searchF(search): 

    DEVELOPER_KEY = "REPLACE_ME" 
    YOUTUBE_API_SERVICE_NAME = "youtube" 
    YOUTUBE_API_VERSION = "v3" 

印刷 "searchFが開始さ" -

def youtube_search(options): 
    youtube = build(YOUTUBE_API_SERVICE_NAME, YOUTUBE_API_VERSION, 
     developerKey=DEVELOPER_KEY) 

    search_response = youtube.search().list(
     q=options.q, 
     type="video", 
     part="id,snippet", 
     maxResults=options.max_results 
    ).execute() 

印刷 "を実行search_response" は動作しません動作します

search_videos = [] 

    for search_result in search_response.get("items", []): 
     search_videos.append(search_result["id"]["videoId"]) 
    video_ids = ",".join(search_videos) 

    video_response = youtube.videos().list(
     id=video_ids, 
     part='snippet, contentDetails' 
    ).execute() 

    videos = [] 

    for video_result in video_response.get("items", []): 
     videos.append("%s, (%s,%s)" % (video_result["snippet"]["title"], 
           video_result["contentDetails"], 
           video_result["contentDetails"])) 
    find = "licensedContent': True" 
    result = ', '.join(videos) 
    print find in result 

    if __name__ == "__main__": 
    print "__main__" 
    argparser.add_argument("--q", help="Search term", default=search) 
    argparser.add_argument("--max-results", help="Max results", default=25) 
    args = argparser.parse_args() 

    try: 
     youtube_search(args) 
    except HttpError, e: 
     print "An HTTP error %d occurred:\n%s" % (e.resp.status, e.content) 
+0

'__name__ ==" __main __ "'のときのみ 'youtube_search()'を呼び出します。 'searchF()'を呼び出すと、それは当てはまりません。 – Barmar

+0

'if'文は、関数内ではなく、モジュール内で最上位になければなりません。 – Barmar

答えて

0

if __name__ == "__main__":if 1:に変更しました。ちょっとしたことです。しかし、私はそれが恐ろしい解決策であると仮定しています。

関連する問題