关于macos:无法从site-packages目录加载通过pip安装的Python模块

Can't load Python modules installed via pip from site-packages directory

我正在尝试安装和使用Evernote模块(https://github.com/evernote/evernote-sdk-python)。 我跑了pip install evernote,它说安装工作正常。

我可以确认evernote模块存在于/usr/local/lib/python2.7/site-packages中。 但是,当我尝试运行python -c"import evernote"时,我收到以下错误:

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

这是我的.bash-profile的内容:

1
2
3
4
5
6
7
[[ -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"
".join(sys.path)'
输出以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
/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模块存在于模块目录中。


/usr/bin/python是OS X附带的python的可执行文件。/usr/local/lib是仅用于用户安装的程序的位置,可能来自Python.org或Homebrew。因此,您要混合使用不同的Python安装,并且更改python路径只是为不同安装安装的不同软件包的部分解决方法。

为了确保使用与特定python相关联的pip,您可以运行python -m pip install ,或者查看路径上的pip,或符号链接到。


我想到了!我添加了这一行:

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

到我的.bash_profile,现在我可以导入存储在该目录中的模块。感谢所有回答的人。


我遇到了类似的问题,它与/usr/local/lib/python2.7/site-packages相关,对组和其他组件没有读写权限,并且它们归root所有。这意味着只有root用户才能访问它们。

试试这个:

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

这些都没有帮助我解决类似的问题。相反,我必须修复新安装的文件权限才能导入。这通常是一个显而易见的事情,但在安装模块/软件包时使用sudo时并非如此。


只需输入终端:

1
sudo pip install pillow

并输入import(无论你喜欢什么)或输入from(无论你喜欢什么)import(无论你喜欢什么)。