2017-04-14 1 views
1

Ich habe eine util.py Datei. Es gibt eine Funktion func drin:Importierte Py-Datei kann keine Module finden

import pandas as pd 
import numpy as np 

def delete_columns(data, columns): 
    """ 
    Deletes all columns in data 
    """ 
    for column in columns: 
     del data[column] 

Wenn ich es in meinem jupyter Notebook importieren und implementieren es - alles in Ordnung ist.

Aber dann deside ich eine andere util2 machen die util nennt:

import numpy as np 
from util import * 
def clean(data): 
    data = data[np.isfinite(data.lol)] 
    delete_columns(data=data, columns= ['1','2','3']) 

Und JETZT, wenn ich nenne es von jupyter es mit Ende:

----> 7 from user_functions import * 
     8 def clean_1(data): 
     9  data = data[np.isfinite(data.lol)] 

NameError: name 'np' is not defined 

Was ist los? Jede Datei importiert alle Module!

+0

Wenn Sie 'numpy' in' util.py' importiert haben, haben Sie es erneut ausgeführt? –

+1

Wenn 'util.py' etwas von' numpy' aufruft, dann das Datei muss 'numpy' selbst importieren. – CoryKramer

+0

@RaviKumar Was meinst du? Wie kann ich ein Modul zurückgeben? –

Antwort

1

Sie sollten np in Module importieren, die es verwenden, Ihre util.py, dies zu ändern:

import numpy as np 

def func(l): 
    a = np.array(l) 
    return a 

UPDATE: stellen Sie sicher, Sie haben numpy für python3 installiert (offene python3 Interpreter (stellen Sie sicher, dass es python3) und Import numpy sehen Sie, ob es funktioniert (stellen Sie auch sicher, dass Jupiter Python 3 verwendet)

+0

Wie ich in meiner Antwort gesagt habe, habe ich das schon probiert. Das hat nicht geholfen –

+0

ahh sorry, bist du sicher, dass du numpy für python3 installiert hast? Versuchen Sie, es in Python3-Interpreter zu importieren (stellen Sie sicher, es ist nicht python2) – aliva

+0

@aliva Ich bin fast sicher, dass die Ursache des Problems ist, dass sie in der gleichen jupyter Notebook-Kernel-Sitzung arbeiten, ohne explizit das Modul neu zu laden. –

Verwandte Themen