2017-02-04 5 views
0

Все мои файлы находятся в одном каталогене может импортировать имя функции

Я свежа в питоне, и я пытаюсь функции кода в файле предварительной обработки, как это:

#Preprocessing file 
from dateutil import parser 
def dropOutcomeSubtype(DataFrame): 
    DataFrame.drop('OutcomeSubtype',axis=1,inplace='True') 

def convertTimestampToTime(Serie): 
    for i in range(0,len(Serie)): 
     parser.parse(Serie[i]).time() 

И тогда я пытаюсь использовать его в Экспортирование файла, как это:

#Import external librairies 
import pandas as pd 
import numpy as np 
import re 

#import our librairy 
from Preprocessing import convertTimestampToTime, dropOutcomeSubtype 

#Reading 
Datas = pd.read_csv("../Csv/train.csv", sep=",", na_values=['NaN']) 

dropOutcomeSubtype(Datas) 
convertTimestampToTime(Datas.DateTime) 

И когда я пытаюсь запустить код в моей оболочке OSX с этой конфигурации: Python 3.5.2 | Anaconda 4.2.0 (x86_64) | IPython 5.1.0

У меня есть эта ошибка: не может импортировать имя «convertTimestampToTime»

и если изменить оператор импорта, как это:

from Preprocessing import * 

Я получаю эту ошибку: Имя «convertTimestampToTime» является не определено

Не могли бы вы объяснить мне, почему?

Спасибо заранее

+0

он выбирает только 'Preprocessing.py' в«текущей рабочей директории»- и она может отличаться от папки с скриптом. Если он не может найти в CWD (текущий рабочий каталог), тогда он пытается импортировать установленные модули - попробуйте «импортировать Preprocessing» и «print (Preprocessing .__ file __)», чтобы увидеть, какой файл был импортирован. – furas

+0

@furas И так? Я не могу понять. Что вы мне посоветуете? –

+0

сначала попробуйте 'import Preprocessing' и' print (Preprocessing .__ file __) ', чтобы посмотреть, какой файл был импортирован. – furas

ответ

0

В этом случае вы можете добавить моды пути к sys.path. если и в той же директории добавьте этот код в первый из основного кода

import os 
import sys 
here = os.path.abspath(os.path.dirname(__file__)) 
sys.path.append(here) 
+0

Я пробовал, но он не работает. Благодарим за ответ –

+0

Возможно, вам нужно использовать 'insert (0, here)' вместо 'append (here)', чтобы поместить эту папку перед другими папками, которые также могут иметь файл 'Preprocessing.py' – furas

Смежные вопросы