1. ホーム
  2. python

[解決済み] ImportError.の原因は何ですか?os X で Python をアップグレードしたら pkg_resources という名前のモジュールがない。

2023-07-08 05:02:50

質問

MacでPythonを2.6.4にアップデートしたところです。 私は dmg パッケージからインストールしました。

バイナリはPythonのパスを正しく設定しないようなので、私はPythonに '/usr/local/lib/python2.6/site-packages' を追加しました。 .bash_profile

>>> pprint.pprint(sys.path)  
['',
'/Users/Bryan/work/django-trunk', 
'/usr/local/lib/python2.6/site-packages',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages']

iPythonを実行できないので、どうやら必要なパスはこれだけではなさそうです。

$ ipython  
Traceback (most recent call last):  
  File "/usr/local/bin/ipython", line 5, in <module>  
  from pkg_resources import load_entry_point  
ImportError: No module named `pkg_resources`

Googleで検索してみたのですが、どのようにすれば pkg_resources をインストールする方法、またはそれがパスにあることを確認する方法がよくわかりません。

これを修正するにはどうしたらよいですか?

どのように解決するのですか?

[更新] TL;DR pkg_resources は、以下のどちらかで提供されます。 配布する または セットアップツール .

[UPDATE 2] PyCon 2013 で発表されたように Distributesetuptools のプロジェクトが再統合されました。 Distribute は非推奨となり、現在の新しい setuptools . これを試してみてください。

curl -O https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
python ez_setup.py

あるいは、より良い方法は、現在の pip を高レベルのインターフェイスとして使用し、そのインターフェイスで setuptools を使用します。

[OPの具体的な問題に対する長文回答】です。]

質問には書かれていませんが、Apple が提供する Python (10.5 では 2.5、10.6 では 2.6.1) からアップグレードしたのか、あるいは python.org の Python 2.5 からアップグレードしたのかと推測されます。 いずれの場合も、重要なポイントは、各 Python インスタンスは独自のライブラリを持ち、独自の site-packages ライブラリを含むことで、そこに追加のパッケージがインストールされます。(そして、それらのどれも /usr/local/lib をデフォルトで使うものはありません)。つまり、新しい python 2.6 に必要な追加パッケージをインストールする必要があるのです。 これを行う最も簡単な方法は、まず新しい python2.6 が検索で最初に表示されるようにすることです。 $PATH (と入力することです。 python2.6 と入力すると期待通りに起動します); python2.6 のインストーラはあなたの .bash_profile の前にフレームワークのbinディレクトリを置くように修正したはずです。 $PATH . そして easy_install を使って セットアップツール を使用して、そこにある指示に従ってください。 その pkg_resources モジュールもこのステップで自動的にインストールされます。

次に、新しくインストールされたバージョンの easy_install (または pip ) をインストールするために ipython .

easy_install ipython

または

pip install ipython

自動的に正しい site-packages の場所にインストールされます。