Не удается загрузить модули Python, установленные через pip, из каталога site-packages

Я пытаюсь установить и использовать модуль Evernote ( https://github.com/evernote/evernote-sdk-python). Я побежал pip install evernote и это говорит о том, что установка сработала.

Я могу подтвердить, что модуль evernote существует в /usr/local/lib/python2.7/site-packages, Тем не менее, когда я пытаюсь запустить python -c "import evernote" Я получаю следующую ошибку:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named evernote

Это содержимое моего .bash-profile:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

# Setting PATH for Python 3.3
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.3/bin:${PATH}"
export PATH
export PATH=$PATH:/usr/local/bin/

У меня такая же проблема с другими модулями, установленными с pip, Помогите?

РЕДАКТИРОВАТЬ: я супер новичок и не редактировал это .bash-profile файл.

РЕДАКТИРОВАТЬ: python -c 'import sys; print "\n".join(sys.path)' Выводит следующее:

/Library/Python/2.7/site-packages/setuptools-1.3.2-py2.7.egg
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python27.zip
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old
/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC
/Library/Python/2.7/site-packages

РЕДАКТИРОВАТЬ: я, кажется, добился прогресса в направлении решения, добавив export PYTHONPATH=“/usr/local/lib/python2.7/site-packages” к моему .bash_profile файл. Тем не менее, теперь, когда я бегу python -c 'from evernote.api.client import EvernoteClient' он пытается импортировать oauth2, который завершается с той же ошибкой. Модуль ouath2 присутствует в каталоге модулей.

5 ответов

Решение

/usr/bin/python это исполняемый файл для Python, который поставляется с OS X. /usr/local/lib это местоположение только для установленных пользователем программ, возможно, из Python.org или Homebrew. Таким образом, вы смешиваете различные установки Python, и изменение пути Python является лишь частичным обходным решением для разных пакетов, устанавливаемых для разных установок.

Чтобы убедиться, что вы используете pip связанный с конкретным питоном, вы можете запустить python -m pip install <pkg>или посмотрите на что pip на вашем пути, или является символической ссылкой на.

Я понял! Я добавил эту строку:

export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages

к моему .bash_profile и теперь я могу импортировать модули, хранящиеся в этом каталоге. Спасибо всем, кто ответил.

Я сталкивался с подобной проблемой, связанная с /usr/local/lib/python2.7/site-packages не имела разрешения на чтение или запись для группы и других объектов, и они принадлежали пользователю root. Это означает, что только пользователь root может получить к ним доступ.

Попробуй это:

$ sudo chmod -R go+rX /usr/local/lib/python2.7/site-packages

Ничто из этого не помогло мне с моей похожей проблемой. Вместо этого мне пришлось исправить недавно установленные разрешения для файлов, чтобы иметь возможность импортировать. Это обычно очевидная вещь, но не так много, когда вы используете sudo при установке модуля / пакетов.

Просто введите в терминал:

sudo pip install pillow

и введите import (что угодно) или введите from (что угодно) import (что угодно).

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