2017-04-14 39 views
1

我有一個util.py文件。 有一個功能func它:導入的py文件找不到它使用的模塊

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] 

如果我導入它在我的筆記本jupyter和實現它 - 一切正常。

但後來我deside再拍util2這就要求util

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

而且NOW,當我把它從jupyter它完成:

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

NameError: name 'np' is not defined 

有什麼不對?每個文件導入所有模塊!

+0

當你在'util.py'中導入'numpy'時是否重新運行? –

+1

如果'util.py'從'numpy'調用某些東西,那麼文件必須「導入numpy」本身。 – CoryKramer

+0

@RaviKumar你是什麼意思?我怎樣才能返回一個模塊? –

回答

1

你應該導入np模塊目前正使用它,改變你的util.py這樣:

import numpy as np 

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

UPDATE:請確保您有安裝python3(開放python3解釋器(確保它的python3 numpy的)和進口numpy的看看它是否可行(還要確保jupiter使用python 3)

+0

正如我在答覆中所說的,我已經嘗試過了。這沒有幫助 –

+0

ahh對不起,你確定你已經安裝了python3的numpy嗎?嘗試在python3解釋器中導入它(確保它不是python2) – aliva

+0

@aliva我幾乎可以確定問題的根本原因在於它們在同一個jupyter筆記本內核會話中工作,而沒有明確地重新加載模塊。 –

相關問題