2016-08-19 1 views
0

У меня есть Hadoop Cluster, работающий на Centos 7. Я запускаю программу (сидя на HDFS), чтобы извлечь твиты, и мне нужно импортировать tweepy для этого. Я сделал pip install tweepy как root на всех узлах кластера, но я все еще получаю ошибку импорта при запуске программы.Ошибка импорта Tweepy на HDFS работает на Centos 7

Ошибка говорит: ImportError: No module named tweepy

Я уверен, что Tweepy установлен потому, pip freeze | grep "tweepy" возвращается tweepy==3.5.0.

Я создал другой файл x.py только с одной строкой import tweepy в папке /tmp и работает без ошибок. Ошибка возникает только на HDFS.

Кроме того, мой python по умолчанию - это Python 2.7.12, который я установил с помощью Anaconda. Может ли кто-нибудь помочь мне в этом вопросе? Тот же код работает без таких ошибок в другом кластере, запущенном на Centos 6.6. Это проблема ОС? Или мне нужно заглянуть в кластер?

ответ

0

Похоже, вы используете Python Anaconda для запуска своего скрипта, но вы установили tweepy в системную установку Python с помощью pip. Либо используйте conda для установки tweepy, либо используйте исполняемый файл Anaconda pip для установки tweepy на ваш кластер Hadoop.

+0

Спасибо! Но 'which pip' возвращает' ~/anaconda2/bin/pip 'Так что я считаю, что использую' pip' от anacondato install tweepy. Пожалуйста, поправьте меня, если я ошибаюсь. – kskp

+0

@kskp, вы сказали в своем вопросе, что вы использовали 'pip' как root. Войдите в систему с правами root и запустите 'which pip', я уверен, это будет иначе. – MattDMo

+0

Запуск 'which pip', когда root возвращает'/root/anaconda2/bin/pip'. Фактически, я установил Anaconda как Root и как мое имя пользователя. Это что-то создает? Как я могу установить что-то под именем root, чтобы он был доступен для всех пользователей? – kskp

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