2017-11-15 3 views
0

Ich entwickle einen Chatbot und kann keine benutzerdefinierte Nachricht drucken, bevor ich das Suchergebnis ausdrucke. Meine benutzerdefinierten Nachrichten befinden sich in einem anderen Ordner als das Hauptscript. Das Terminal druckt "ImportError: kann den Namen 'UserRequest' nicht importieren".ImportError: kann den Namen 'UserRequest' nicht importieren

Hier ist das Hauptskript ist:

von Google Import Suche Importanforderungen von BS4 Import BeautifulSoup von RespondsToSearchQueries importieren UserRequest

def search (Abfrage, Erstes_Zeichen): "" "nimmt einen Eingang Abfrage und gibt die Anzahl der Websites und Beschreibungen zurück "

for url in search(query, tld='com', lang='en', num = start_num,stop=5, pause = 3.0): 
#for each URL found in google search 
    response = requests.get(url) 
    soup = BeautifulSoup(response.text, "html.parser") 
    metas = soup.find_all('meta') 
    metasList = list(meta.attrs['content'] for meta in metas if 'name' in meta.attrs and meta.attrs['name'] == 'description') 
    #retrieve description of URL 
    desc = ''.join(metasList) 
    #convert list to string 

    url_and_desc = url,"\n",desc,"\n" 
    yield url_and_desc 

Frage = Eingabe (" Was möchten Sie suchen ") Antworten = search_results (Abfrage, 1) für url_and_desc in Antworten: print (UserRequest (Abfrage)?) print (url_and_desc)

und hier ist das Skript, das ich von importieren versuchen:

von google_rewrite import *

def UserRequest (Text):

text = text.lower() 
for word in text: 
    if "boneless pizza" in text: 
     response = "" 
     search_results(word) 
    elif "pizza" in text: 
     response = "" 
    elif "weather" in text: 
     response = "" 
     #location = "Where are you right now?" 
     response += weather_Lookup(location) 
    elif "music" in text: 
     response = "" 
     response += search_results(response) 
    elif "google" in text: 
     reponse = "" 
     response += search_results(reponse) 
    elif "food" in text: 
     response = "" 
     response += search_results(response) 
    elif "sport" or "sports" in text: 
     rsponse = "" 
     rsponse += search_results(response) 
    elif "news" in text: 
     rsponse = "" 
     response += search_results(response) 
    elif "sing" in text: 
     response = "" 
     response += search_results(response) 
    #elif "joke" in text or "jokes" in text: 
    # response = "Jokes?! I know some, what to hear one?" 
     # if 
     # else: 
     # response += search_results(response) 
    else: 
     response = "Couldn't understand what are you looking for m8?" 

return response 
+0

Diese Frage muss neu formatiert werden. da der Code über die Frage verbreitet wird. – Haranadh

Antwort

0

haben Sie eine __init__.py in der gleichen Falte als ResponsToSearchQueries.py? Dies ist erforderlich, um den Ordner zu einem Paket zu machen, von dem Sie importieren können. __init__.py kann leer sein.

Es lohnt sich wahrscheinlich, dies einfach in der Befehlszeile auszuprobieren, um sicherzustellen, dass es sichtbar ist - starten Sie im Verzeichnis Ihres Hauptskriptes, starten Sie den Interpreter und geben Sie einfach from RespondsToSearchQueries import UserRequest ein. Sie können dann mit dem __init__.py (und anderen Faktoren, bis es funktioniert) basteln?

Kann hilfreich sein, wenn Sie uns Ihre Verzeichnis- und Dateistruktur für diese App zeigen, damit wir beim Importproblem helfen können.

Verwandte Themen