Не удается загрузить модули 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
(что угодно).