2017-02-20 14 views
0

У меня есть .py-файл, который я пытаюсь выполнить через Talend, используя модуль tSystem. Я становлюсь ниже ошибки.Ошибка выполнения файла сценария Python через Talend tSystem

Starting job MyJob at 07:06 20/02/2017. 

[statistics] connecting to socket on port 3364 
[statistics] connected 
Traceback (most recent call last): 
    File "H:\Talend POC\NameParsingUSData.py", line 7, in <module> 
    from unidecode import unidecode 
ImportError: No module named 'unidecode' 
[statistics] disconnected 
Job MyJob ended at 07:06 20/02/2017. [exit code=0] 

Вот как выглядит работа. enter image description here

Странно, потому что, когда я дважды щелкаю по .py-файлу, он выполняет и дает результат успешно. Я также попытался выполнить файл через командную строку cmd в командной строке, за пределами talend, и он также успешно работает. Не уверен, что может вызвать ошибку. Для справки ниже приведен мой сценарий Python.

import os 
from unidecode import unidecode 
import pandas as pd 

dat = pd.read_csv("H:\\Talend POC\\1M_dummyData.csv") 

df1.myvar = df1.myvar.str.replace(r"[^a-zA-Z., ]",r' ') 
df1.myvar = df1.myvar.str.replace('\s+', ' ') 
df1.myvar = df1.myvar.str.lstrip(".,' ") 
df=df1.as_matrix() 

df1.to_csv("H:\\Talend POC\\results_USvalidemail_parse.csv",header=True,index=False, encoding='utf-8') 

Обратите внимание, что он успешно импортирует первую библиотеку, ошибка начинается со второго импорта библиотеки «unicode»

Любая помощь?

+0

Вы пытались выполнить 'pip install unidecode' на своем сервере? – ishaan

+0

@ishaan Я делаю это на локальной машине. Я установил его уже на свою машину. – Enthusiast

+0

Кроме того, ваш код, похоже, не использует библиотеку 'unidecode', удалите строку импорта. – ishaan

ответ

1

Я не знаю, почему это работает, но это то, что мой хак был. Я искал любой .py файл, который существует в интеграции данных дампа Talend и я нашел только один в каталоге

C:\Users\user\Downloads\TOS_DI-20161216_1026-V6.3.1\plugins\org.apache.ant_1.9.2.v201404171502\bin 

Я попытался установить библиотеку в этой директории в командной строке.

Во-первых, я запустил приведенный ниже код в командной строке, чтобы перейти в каталог.

cd /d C:\Users\user\Downloads\TOS_DI-20161216_1026-V6.3.1\plugins\org.apache.ant_1.9.2.v201404171502\bin 

Во-вторых, я установил unidecode библиотеку с помощью команды pip install unidecode

я вновь выполнил работу Talend и выполнена с успехом !!

работа по переработке MyJob в 08:05 20/02/2017.

[statistics] connecting to socket on port 3983 
[statistics] connected 
[statistics] disconnected 
Job MyJob ended at 08:05 20/02/2017. [exit code=0]