Не может импортировать установленные пакеты в Python

Я установил зернышко (pip 1.5.4 from /usr/lib/python2.7/dist-packages (python 2.7)). Моя версия Python 2.7.

Я установил pygame apt-get install python-pygame и получил сообщение успеха. Но когда я пытаюсь импортировать его в python, получение следующего сообщения:

ashish@Ashish-Notebook:~$ python
Python 2.7.11 (default, Jun  6 2016, 07:21:54) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pygame
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named pygame
>>> 

Точно так же я установил Красивый Суп pip install BeautifulSoup и не может импортировать его никуда. Кроме того, когда я снова пытаюсь установить, я получаю это сообщение:

Requirement already satisfied (use --upgrade to upgrade): BeautifulSoup in /usr/local/lib/python2.7/dist-packages
Cleaning up...
ashish@Ashish-Notebook:~$

Кроме того, когда я получаю список установленных пакетов (списком зернышка). Я вижу pygame и beautifulsoup в том списке.

4
задан 14 July 2016 в 05:51

1 ответ

Проблема - это при установке вещей с sudo apt-get install (или sudo pip install), они устанавливают на местах в /usr, но Python, который Вы скомпилировали из источника, был установлен в /usr/local. Python, который Вы на самом деле заканчиваете тем, что запустили, когда Вы вводите python при подсказке тот, который Вы скомпилировали (на основе вывода python -c 'import sys; print(sys.path)' команда), и это не может найти пакеты Python установленными в /usr каталог. Однако Ubuntu идет с Python (и python 2 и python 3) уже установленный в корректном месте, где это найдет установленные пакеты. Таким образом, общая рекомендация состоит в том, чтобы попытаться не смешать методы установки как это. Ubuntu имеет много пакетов программного обеспечения в наличии через официальные репозитории, который устраняет потребность сделать много компиляции себя, и обычно рекомендуется установить программное обеспечение через Кв., если это возможно.

Тем не менее для пакетов Python (как Pygame и Beautiful Soup), вещи могут стать немного более сложными. Смешивание pip и apt-get может доставить неприятности в будущем, таким образом, один подход для хранения вещей простыми должен придерживаться просто менеджера по системному пакету. Если Вы заканчиваете тем, что должны были использовать зернышко, потому что диспетчер пакетов не имеет вещей, в которых Вы нуждаетесь (или актуальные версии), лучше работать в виртуальных средах и сигнале использования для всех пакетов Python, в которых Вы нуждаетесь в той виртуальной среде.

Сказать Вашей системе находить системный Python по умолчанию правильно (python 2, который является значением по умолчанию, когда Вы просто звоните python), попытайтесь переписать символьную ссылку, которая направляет python команда при подсказке исходному месту назначения:

sudo ln -s /usr/bin/python2.7 /usr/bin/python

Надо надеяться, это должно позволить этому находить пакеты Python, которые Вы установили.

4
ответ дан 1 December 2019 в 09:46

Другие вопросы по тегам:

Похожие вопросы: