Я установил зернышко (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 в том списке.
Проблема - это при установке вещей с 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, которые Вы установили.