Python не может найти модули с установленным PYTHONPATH
Я полностью запутался с новым питоном 2.7.10.
Я установил python 2.7.10 из tar.xz, который был загружен с официального сайта. Затем я связал /usr/local/bin/python2.7 с /usr/bin/python2.7 и / usr / bin / python, но когда я пытаюсь импортировать модуль, я получаю ImportError: нет модуля с именем "module_name", Например:
python -c "import gtk"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named gtk
Но если:
cd /usr/lib/python2.7/dist-packages/gtk-2.0/
python -c "import gtk"
Мы получаем:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "gtk/__init__.py", line 30, in <module>
import gobject as _gobject
ImportError: No module named gobject
Итак, модуль GTK был успешно импортирован.
Давайте "cd ~" и посмотрим на sys.path:
python -c "import sys, pprint; pprint.pprint(sys.path)"
['',
'/usr/local/lib/python2.7/site-packages/setuptools-17.1.1-py2.7.egg',
'/usr/local/lib/python2.7/site-packages/pip-7.1.0.dev0-py2.7.egg',
'/usr/local/lib/python27.zip',
'/usr/local/lib/python2.7',
'/usr/local/lib/python2.7/plat-linux2',
'/usr/local/lib/python2.7/lib-tk',
'/usr/local/lib/python2.7/lib-old',
'/usr/local/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/site-packages']
Хорошо, нет /usr/lib/python2.7/dist-packages, давайте добавим его: экспорт PYTHONPATH=$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/lib/python2.7
Сейчас:
python -c "import sys, pprint; pprint.pprint(sys.path)"
['',
'/usr/local/lib/python2.7/site-packages/setuptools-17.1.1-py2.7.egg',
'/usr/local/lib/python2.7/site-packages/pip-7.1.0.dev0-py2.7.egg',
'/home/s-quark',
'/usr/lib/python2.7/dist-packages',
'/usr/lib/python2.7',
'/usr/local/lib/python27.zip',
'/usr/local/lib/python2.7',
'/usr/local/lib/python2.7/plat-linux2',
'/usr/local/lib/python2.7/lib-tk',
'/usr/local/lib/python2.7/lib-old',
'/usr/local/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/site-packages']
Но все равно не удалось найти модуль:
python -c "import gtk"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named gtk
Что мне нужно сделать?
1 ответ
Кажется, у вас есть две версии Python.
Версия по умолчанию обычно связана с:
/usr/bin/python
Как вы можете видеть из which -a python
, ваша локальная версия живет внутри:
/usr/local/bin/python
это связано с вашим локальным двоичным
/usr/bin/python
pip install
устанавливает пакеты с использованием Python по умолчанию. По этой причине вы не можете импортировать пакеты из локальной установки, даже если пакет виден в вашем $PYTHONPATH
,
В случае python -m pip install
не устанавливает нужные пакеты в вашей локальной версии, попробуйте создать виртуальную среду (не использовать sudo
)
В случае, если все не удается или вы в отчаянии, установите чистую Анаконду и держитесь подальше от неприятностей.
Я надеюсь, что это работает