web-dev-qa-db-ja.com

site-packagesディレクトリからpip経由でインストールされたPythonモジュールをロードできません

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

EDIT:export PYTHONPATH=“/usr/local/lib/python2.7/site-packages”.bash_profileファイルに追加することで、ソリューションに向かって前進したようです。ただし、python -c 'from evernote.api.client import EvernoteClient'を実行すると、oauth2をインポートしようとしますが、同じエラーで失敗します。 ouath2モジュールは、モジュールディレクトリにあります。

50
Chase McCoy

/usr/bin/pythonは、OS Xに付属するpythonの実行可能ファイルです。/usr/local/libは、Python.orgまたはHomebrewからのユーザーがインストールしたプログラムのみの場所です。したがって、異なるPythonインストールを混在させ、pythonパスを変更することは、異なるインストール用にインストールされる異なるパッケージの部分的な回避策にすぎません。

特定のpythonに関連付けられたpipを確実に使用するには、python -m pip install <pkg>を実行するか、パス上のpipが何であるか、またはシンボリックリンクされているかを確認します。

78
Jason S

私はそれを考え出した!私はこの行を追加しました:

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

.bash_profileに追加すると、そのディレクトリに保存されているモジュールをインポートできるようになります。答えてくれたすべての人に感謝します。

57
Chase McCoy

同様の問題に直面しました。/usr/local/lib/python2.7/site-packagesに関連するものは、グループおよびその他の読み取りまたは書き込み権限がなく、それらはルートによって所有されていました。これは、rootユーザーのみがアクセスできることを意味します。

これを試して:

$ Sudo chmod -R go+rX /usr/local/lib/python2.7/site-packages
5
prarit lamba

これのどれも私の同様の問題で私を助けませんでした。代わりに、インポートできるように、新しくインストールされたファイルpermissionsを修正する必要がありました。これは通常明白なことですが、モジュール/パッケージをインストールするときにSudoを使用するときはそれほど重要ではありません。

4
cnaak