Ошибка модуля импорта Python _io

У меня есть 3 версии Python. python2.7 python3 python3.4

У меня нет никакого опыта в Python. Я не использовал его раньше. Эта ошибка существует как часть cluster setup via cloudera manager.

ОШИБКА

 ..........
 >> import mimetools 
  >> File "/usr/lib/python2.7/mimetools.py", line 6, in <module> 
 >> import tempfile 
 >> File "/usr/lib/python2.7/tempfile.py", line 32, in <module> 
 >> import io as _io 
 >> File "/usr/lib/python2.7/io.py", line 51, in <module> 
 >> import _io 
 >>ImportError: No module named _io 
 >>Traceback (most recent call last): 
 >> File "/usr/lib/cmf/agent/src/cmf/agent.py", line 8, in <module> 
 >> import avro.ipc 
 >> File "/usr/lib/cmf/agent/build/env/lib/python2.7/site-packages/avro-1.6.3-py2.7.egg/avro/ipc.py", line 19, in <module> 
 >> import httplib 
 >> File "/usr/lib/python2.7/httplib.py", line 79, in <module> 
 >> import mimetools 
 >> File "/usr/lib/python2.7/mimetools.py", line 6, in <module> 
 >> import tempfile 
 >> File "/usr/lib/python2.7/tempfile.py", line 32, in <module> 
 >> import io as _io 
 >> File "/usr/lib/python2.7/io.py", line 51, in <module> 
 >> import _io 
 >>ImportError: No module named _io 

Пробовал

Читать это

Я действительно не знаю, где запускать команды принятых ответов. И второй ответ, который имеет 30 голосов, я попробовал. В нем говорится: «cp: ‘/usr/bin/python2.7’ и ‘/usr/bin/python’ — это один и тот же файл». Кто-нибудь, пожалуйста, помогите мне?

Это новая ОС Ubuntu. Даже не апгрейд.


person Gibbs    schedule 17.06.2015    source источник


Ответы (1)


Если вы откроете окно терминала, вы можете вызвать python двумя способами:

python

в этом случае он вызовет python 2.7. Или:

python3

в этом случае я подозреваю, что он вызовет python 3.4. Обычно у вас не может быть двух разных версий python3 одновременно. (И я бы предложил удалить один из них).

С другой стороны, если вы установите модуль, он будет установлен только в одном из Python (может зависеть от того, какой инструмент вы используете). Итак, если вы установите _io в python 2, он не будет доступен для python3. Некоторые модули могут быть даже недоступны для обеих разновидностей Python.

Вы можете легко попробовать это. Попробуйте импортировать модуль в каждый из Python:

$ python
>>> import io
??? 
>>> Ctl^D

$ python3
>>> import io

Теперь io является системным модулем, поэтому он должен быть доступен. Если это не так, то, вероятно, в Python3 есть путаница в отношении того, где он должен найти модуль (вероятно, вызванный вашими двумя версиями Python3).

Я не знаком с Cloudera. Если Cloudera запускает Python в виртуальной среде, путаницы может быть еще больше (и, вероятно, возникла проблема с установкой).

person jcoppens    schedule 17.06.2015
comment
Да, это проблема только установки, - person Gibbs; 18.06.2015