52

私は初心者で、プロジェクトに pySerial と feedparser モジュールが必要でした。マウンテン ライオンを実行しています。

次のチュートリアルに従って、python 2.7.3にアップグレードしてから上記のモジュールを使用できるようにしました。

http://hackercodex.com/guide/python-virtualenv-on-mac-osx-mountain-lion-10.8/

pipをインストールするまで、このチュートリアルに従いました。Virtualenv をインストールする代わりに。次のコマンドを使用して、pySerial と feedparser をインストールしました

$ pip install pySerial
Requirement already satisfied (use --upgrade to upgrade): pySerial in /Library/Python/2.7/site-packages
Cleaning up...

これはすでに存在していると思い、確認しました。Pythonはこれをうまくインポートしているようです。チュートリアルで述べたように、自作を使用してインストールしたため、私のpythonバージョンは2.7.3 btwにアップグレードされました。

次に、フィードパーサーをインストールしてみました

$ pip install feedparser
Requirement already satisfied (use --upgrade to upgrade): feedparser in /usr/local/lib/python2.7/site-packages
Cleaning up...

usr/local/lib の site-packages ディレクトリにあることに注目してください。

私のpipインストールはすべてそのディレクトリにインストールされていますが、それらをインポートしようとするとpythonがそれらを拾っていないようです。

コアディレクトリだけでなくPythonもそこに見えるようにパスを設定するにはどうすればよいですか?

どうぞよろしくお願いいたします。

ここで答えを探してみました: Pip installs but module is not found

しかし、彼らのどちらも私と同じ状況にありません。次のように bash_profile を編集したため、なぜこれが起こっているのかわかりません

# Set architecture flags
export ARCHFLAGS="-arch x86_64"
# Ensure user-installed binaries take precedence
export PATH=/usr/local/share/python:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
# Load .bashrc if it exists
test -f ~/.bashrc && source ~/.bashrc

次にhomebrewをインストールし、次にhomebrewを介してpython 2.7.3をインストールしました(2.7.3は現在私のマシンで実行されています)

すべての pip インストールが正しくリンクされると思いましたか?

4

12 に答える 12

59

簡単な回避策として、bash のような端末 (Linux/OSX) を使用していると仮定すると、PYTHONPATH 環境変数のエクスポートを試すことができます。

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

Python 2.7 の場合

于 2013-02-24T13:49:25.567 に答える
9

他の解決策は私のために働いていなかったので、私は試しました:

pip uninstall <module> && pip install <module>

そして、それは私にとってそれを解決しました。あなたのマイレージは異なる場合があります。

于 2016-03-03T20:35:12.713 に答える
9

私もこの問題を抱えていました。/usr/local/lib/python2.7/dist-packages/ の下のすべてのサブディレクトリとファイルには、グループとその他の読み取りまたは書き込み権限がなく、root によって所有されていることに気付きました。これは、root ユーザーのみがそれらにアクセスできることを意味するため、これらのモジュールのいずれかを使用する Python スクリプトを実行しようとしたユーザーは、インポート エラーを受け取りました。

$ python
Python 2.7.3 (default, Apr 10 2013, 06:20:15) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named selenium
>>> 

ファイルの読み取り許可と、グループなどのサブディレクトリの検索許可を付与しました。

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

そして、それは私にとって問題を解決しました:

$ python
Python 2.7.3 (default, Apr 10 2013, 06:20:15) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium
>>> 

これらのパッケージを pip でインストールしました (sudo で root として実行)。読み取り/検索権限を付与せずにインストールした理由がわかりません。これは私には pip のバグ、またはおそらくパッケージ構成のバグのように思えますが、私は Python とそのモジュールのパッケージ化にあまり詳しくないので、よくわかりません。FWIW、dist-packages の下のすべてのパッケージにこの問題がありました。とにかく、それが役立つことを願っています。

よろしく。

于 2013-09-13T22:09:41.940 に答える
-1

私にとっての問題は、ファイルに奇妙な構成設定があったことでしたpydistutils.cfg

実行してみてください rm ~/.pydistutils.cfg

于 2016-04-30T11:12:07.447 に答える
-2

easy_install/pip をどのようにインストールしましたか? アップグレードされたバージョンの python 用にインストールしたことを確認してください。ここで起こりうることは、古い (デフォルトの) python インストールが pip インストールにリンクされている可能性があるということです。デフォルト バージョンを実行して、新しくインストールしたモジュールをインポートしてみてください。

于 2013-02-24T13:58:02.863 に答える