Я успешно установил библиотеку с pip install <library-name>
. Но когда я пытаюсь импортировать его, python поднимает ImportError: No module named <library-name>
. Почему я получаю эту ошибку и как я могу использовать установленную библиотеку?
ImportError после успешной установки
Ответ 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
Еще пара баллов:
- Проверьте, устанавливаете ли вы библиотеку в virtualenv, который хотите использовать.
- Есть некоторые библиотеки, имена пакетов которых отличаются от имен библиотек. Вы можете взглянуть на их документацию в Интернете (Google с ключевым словом
python <library>
обычно выводит информацию), чтобы узнать, правильно ли вы импортируете пакет.