ImportError после успешной установки

Я успешно установил библиотеку с pip install <library-name>. Но когда я пытаюсь импортировать его, python поднимает ImportError: No module named <library-name>. Почему я получаю эту ошибку и как я могу использовать установленную библиотеку?

Ответ 1

TL; DR. Часто существует несколько версий интерпретаторов python и версий pip. Использование python -m pip install <library-name> вместо pip install <library-name> гарантирует, что библиотека будет установлена ​​в интерпретатор python по умолчанию.

Также обратите внимание:. В своем личном опыте я бы посоветовал использовать sudo pip install для установки пакетов в системный интерпретатор python по умолчанию. Это может привести к различным беспорядочным проблемам. Всякий раз, когда у вас возникает соблазн называть pip с помощью sudo, сначала проверьте, если virtualenv не лучший вариант для вас.


Большинство современных систем поставляют несколько интерпретаторов python. Каждый интерпретатор поддерживает собственный набор установленных пакетов. При установке новых пакетов важно понять, в каком интерпретаторе эти пакеты действительно установлены.

В системах Unix оболочка может использоваться для понимания того, что именно происходит.

Ввод which -a python показывает все интерпретаторы, которые в вашем PATH. Первая строка соответствует интерпретатору, который используется при запуске python из командной строки.

/private/tmp/py32/bin/python
/usr/local/bin/python
/usr/bin/python

Каждая версия pip принадлежит ровно одному интерпретатору. which -a pip показывает все версии pip. Снова первая строка - это то, что будет вызываться, когда вы введете pip в свою оболочку.

/usr/local/bin/pip
/usr/bin/python

Обратите внимание, что в этом случае python принадлежит интерпретатору, установленному в /private/tmp/py32/, но pip устанавливается в интерпретатор /usr/local/bin. После успешной установки библиотеки вы не сможете импортировать ее в свой интерпретатор python по умолчанию.

Итак, как вы импортируете установленную библиотеку?

Ваш первый вариант - запустить нужный интерпретатор с его полным путем. Поэтому, если вы наберете /usr/local/bin/python, вы сможете импортировать библиотеку.

Вторая - часто предпочтительная опция - это специально вызывать правильную версию пипса. Для этого вы можете использовать python -m pip install <library-name> вместо pip install <library-name>. Это вызовет версию pip, принадлежащую вашему интерпретатору python по умолчанию.

Ответ 2

Еще пара баллов:

  1. Проверьте, устанавливаете ли вы библиотеку в virtualenv, который хотите использовать.
  2. Есть некоторые библиотеки, имена пакетов которых отличаются от имен библиотек. Вы можете взглянуть на их документацию в Интернете (Google с ключевым словом python <library> обычно выводит информацию), чтобы узнать, правильно ли вы импортируете пакет.