私はDjangoアプリを開発サーバーにデプロイしていますが、pip install -r requirements.txt
を実行するとこのエラーが発生します。
Traceback (most recent call last):
File "/var/www/mydir/virtualenvs/dev/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
pkg_resources
はsetuptools
と一緒に配布されているようです。当初、これはvirtualenvのPythonにはインストールされない可能性があると考えたので、次のコマンドを使用してvirtualenvのPythonサイトパッケージにsetuptools 2.6
(Pythonと同じバージョン)をインストールしました。
sh setuptools-0.6c11-py2.6.Egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages
編集: これはvirtualenv内でのみ発生します。 virtualenvの外部でコンソールを開くとpkg_resources
が表示されますが、それでも同じエラーが発生します。
なぜpkg_resources
が進路上にないのかという考えはありますか?
2018年7月の更新
ほとんどの人は今pip install setuptools
を使うべきです(おそらくSudo
と一緒に)。
パッケージマネージャを介してpython-setuptools
パッケージを(再)インストールする必要があるかもしれません(apt-get install
、yum install
など)。
この問題はあなたのOSと開発環境に大きく依存します。上記の方法でうまくいかない場合は、以下のレガシー/その他の回答を参照してください。
説明
このエラーメッセージは、欠けている/壊れているPythonのsetuptools
パッケージが原因で発生します。 Matt M.のコメントおよび setuptools issue#581 に従って、以下で参照されるブートストラップスクリプトは、もはや推奨されるインストール方法ではありません。
ブートストラップスクリプトの説明は、それがだれにでも役立つ場合を考慮して、以下のままにします。
従来の回答
Pipを使おうとしているときに、今日も同じImportError
に遭遇しました。どういうわけかsetuptools
パッケージは私のPython環境では削除されていました。
この問題を解決するには、setuptools
のセットアップスクリプトを実行してください。
wget https://bootstrap.pypa.io/ez_setup.py -O - | python
(またはwget
がインストールされていない場合(OS Xなど)は、
curl https://bootstrap.pypa.io/ez_setup.py | python
おそらくSudo
が先頭に付きます。)
distribute
のバージョン、または0.6より下のsetuptools
がある場合は、まずそれをアンインストールする必要があります。*
詳細については インストール手順 を参照してください。
*すでにdistribute
を動かしているのなら、それをsetuptools
に切り替える「互換性ラッパー」にアップグレードするのがより簡単です。しかし、物事がすでに壊れているのであれば、それを試してはいけません。
Sudo apt-get install --reinstall python-pkg-resources
debianで私のためにそれを修正しました。いくつかの.debパッケージ(私の場合はツイストセット)をアンインストールすると、pythonがパッケージを見つけるために使用するパスが壊れたようです。
Ubuntu 13.10でrhodecodeをvirtualenvにインストールしようとしているときにこのエラーが発生しました。私にとって解決策は実行することでした
pip install --upgrade setuptools
pip install --upgrade distribute
私はeasy_install rhodecodeを実行する前に。
それは私にも起こりました。 virtualenvがsetuptoolsを使用している間にrequirements.txtに "distribute"エントリが含まれていると問題が発生すると思います。 Pipはsetuptoolsにパッチを配って配布スペースを確保しようとしますが、残念ながらそれは途中で失敗します。
簡単な解決策はあなたの現在のvirtualenvを削除してから--distribute引数で新しいvirtualenvを作ることです。
Virtualenvwrapperを使用する場合の例:
$ deactivate
$ rmvirtualenv yourenv
$ mkvirtualenv yourenv --distribute
$ workon yourenv
$ pip install -r requirements.txt
CentOS 6ではパッケージpython-setuptoolsをインストールすることで修正されました。
yum install python-setuptools
私は以前にこのエラーを抱えていました、そして最も高い評価された答えは私にez_setup.py
ファイルをダウンロードしようとしているエラーを与えました。あなたがコマンドを実行できるように私は別のソースを見つけました:
curl http://peak.telecommunity.com/dist/ez_setup.py | python
動作させるためにはSudo
も使用する必要があることがわかりました。そのため、次のコマンドを実行する必要があります。
Sudo curl http://peak.telecommunity.com/dist/ez_setup.py | Sudo python
スクリプトをダウンロードできる場所を別に作成しました。
これらの答えをいくつか試した後、同僚に手を差し伸べたところ、Ubuntu 16.04で私にとって役に立ちました。
pip install --force-reinstall -U setuptools
pip install --force-reinstall -U pip
私の場合、それは問題を抱えていたピロー3.1.1の古いバージョンだけでした(ピロー4.xはうまく働きました)、そしてそれは今解決されます!
もう少しSudoが必要です。それからpipをインストールするためにeasy_installを使いました。動作します。
Sudo wget https://bootstrap.pypa.io/ez_setup.py -O - | Sudo python
Sudo easy_install pip
私はこれを行うことによってvirtualenvでエラーを修正しました:
からpkg_resources.pyをコピーした
/Library/Python/2.7/site-packages/setuptools
に
/Library/Python/2.7/site-packages/
これは安価な回避策かもしれませんが、私にとってはうまくいきました。
。
セットアップツールが存在しない場合は、virtualenv --system-site-packages /DESTINATION DIRECTORY
と入力してsystem-site-packagesをインストールし、最後の部分をインストールしたいディレクトリに変更してみてください。 pkg_rousources.py
はlib/python2.7/site-packagesのそのディレクトリの下にあります。
私にとっては、 "site"というサブディレクトリがあるためにこのエラーが発生していました。これがpipのバグかどうかはわかりませんが、私は次のように始めました。
/some/dir/requirements.txt/some/dir/site /
pip install -r requirements.txtが機能しないため、上記のエラーが発生します。
サブフォルダの名前を "site"から "src"に変更すると問題が解決しました。多分pipは "site-packages"を探していますか?クレイジー.
彼らはbitbucketから離れてgithubにいるようです( https://github.com/pypa/setuptools )
実行するコマンドは次のとおりです。
wget https://bootstrap.pypa.io/ez_setup.py -O - | Sudo python
私がvirtualenvをそれを作成したのとは異なるユーザーとしてアクティベートしたとき、私はこの問題を抱えていました。許可の問題のようです。これを@cwcで答えてみたところ、次のように出力されました。
Installing easy_install script to /path/env/bin
error: /path/env/bin/easy_install: Permission denied
Virtualenvを作成したユーザーに切り替えてから元のpip install
コマンドを実行しても問題はありませんでした。お役に立てれば!
私にとっては、これはsite-packages
に対するパーミッションの問題であることがわかりました。それは私の開発環境だけなので、私はパーミッションを上げました、そしてすべてが再び働いています:
Sudo chmod -R a+rwx /path/to/my/venv/lib/python2.7/site-packages/
私も今日この問題を抱えていました。私は仮想環境の中に問題があるだけでした。
私のための解決策はpipでvirtualenvを削除してからアンインストールしてそれを再インストールすることで仮想環境を無効にすることでした。その後、私は自分のプロジェクト用に新しい仮想環境を作成しました。それから、pipは通常の環境と同じように仮想環境内でもうまく機能しました。
conda 経由でインストールされたアプリケーションでこの問題に遭遇した場合、解決策は( このバグ報告で述べられているように) でsetup-toolsをインストールすることです。
conda install setuptools
どうやらあなたはsetuptoolsがないのです。いくつかのvirtualenvバージョンはデフォルトでsetuptoolsの代わりにdistributeを使います。 virtualenvを作成するときに--setuptools
オプションを使用するか、環境内でVIRTUALENV_SETUPTOOLS=1
を設定します。
Python 3を使用している場合は、pipの代わりにpip3を使用してください。コマンドは$ pip3 install requirements.txt
のようになります
私はGoogle App Engine環境でそのエラーを経験しました。そしてpip install -t lib setuptools
は問題を解決しました。
私はpython 2.7.14のpipをインストールするためにeasy-installを使ったときに同じ問題を抱えていました。私にとっての解決策は、(最善ではないかもしれませんが、私にとってはうまくいきました。おそらくこれが最も簡単です)、easy-install.py
を含むフォルダーに、フォルダーpkg_resources
も含まれていることです。私のpip-script.py
スクリプトは(python27\Scripts
)でした。それ以来、私はpython27\Lib\site-packages\pip-9.0.1-py2.7.Egg\pip\_vendor
フォルダでもそれを見つけました、これをインポートするためにpip-script.py
ファイルを修正することはより良い解決策かもしれません。
yum -y install python-setuptools
私はCephを設定する問題があります"$ ceph-deploy new node1"
実行コマンドがあります、そして私は"$ yum -y install python-setuptools"
コマンドを実行します、そして問題はなくなっています。ありがとう
Opensuse 42.1では、以下の問題が修正されました。
zypper in python-Pygments
私はCentOS 6.7を使用していますが、私のPythonは2.6.6から2.7.11にアップグレードしたものです。
Sudo yum install python-devel
同じ状況で誰かを助けることを願っています。
私の場合は、最初に2つのpythonバージョンをインストールし、その後、古いバージョンを削除しました。仮想環境を作成しながら
virtualenv venv
アンインストールされたpythonを参照していました
私のために働いたこと
python3 -m virtualenv venv
Pipを使おうとしているときも同じです。
Ubuntuのビルドを更新した後、私はこの問題に遭遇しました。私のすべての仮想環境で、セットアップツールを通過して削除したようです。
これを解決するために、仮想環境をターゲットディレクトリに再インストールしました。これは足りないセットアップツールをきれいにして、物事を再び実行させました。
例えば。:
~/RepoDir/TestProject$ virtualenv TestEnvironmentDir
ImportError:pkg_resourcesという名前のモジュールはありません: 解決策は以下のコマンドを使ってpython pipを再インストールすることです。
ステップ:1 rootユーザーでログインします。
Sudo su root
ステップ:2 存在する場合はpython-pipパッケージをアンインストールします。
apt-get purge -y python-pip
ステップ:3 wgetコマンドを使ってファイルをダウンロードする(pwd
にファイルをダウンロードする)
wget https://bootstrap.pypa.io/get-pip.py
ステップ:4 pythonファイルを実行します。
python ./get-pip.py
ステップ:5 Finalyインストールコマンドを終了します。
apt-get install python-pip
注: ユーザーはrootでなければなりません。
Windowsでは、 www.lfd.uci.edu /〜gohlke/pythonlibs/ からダウンロードしたpipをインストールしてからこの問題を解決しました。
それで、私は最初にsetuptools(easy_install)をインストールするべきでした。
このOSX用ガイドに従ってみたところ、私はこの答えに出会いました 。私にとってうまくいったのは、python get-pip
を実行した後、私もALSO easy_install pip
を使わなければならなかったということでした。それは全くpipを実行することができないという問題を修正しました。 I やった たくさんの古いmacportものがインストールされている。それは矛盾しているかもしれません。
簡単な解決策は、setuptoolsまたは環境全体をアップグレードするためにcondaを使用できることです。 (特にWindowsユーザー向け)
conda upgrade -c anaconda setuptools
setuptoolsが削除された場合は、もう一度setuptoolsをインストールする必要があります。
conda install -c anaconda setuptools
これらすべての方法がうまくいかない場合は、conda環境をアップグレードすることができます。しかし、私はあなたがいくつかのパッケージを再インストールしてアンインストールする必要があることをお勧めしません。
投稿された回答のどれも私のために働きませんでした、それで私はpipを再インストールしました、そして、それはうまくいきました!
Sudo apt-get install python-setuptools python-dev build-essential
Sudo easy_install pip
pip install --upgrade setuptools
(参照: http://www.saltycrane.com/blog/2010/02/how-install-pip-ubuntu/ )
Windowsでは、Python 3.7では、これは私のために働いた:
pip install --upgrade setuptools --user
--user
はあなたのホームディレクトリにパッケージをインストールします、それは管理者特権を必要としません。
私にとって良い解決策はvirtualenvに--no-download
オプションを使うことでした(toxの場合はVIRTUALENV_NO_DOWNLOAD=1 tox
)。
次の方法でsetuptools
を再インストールしてください。
$ Sudo wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz#md5=7df2a529a074f613b509fb44feefefe74e
$ tar -zxvf setuptools-0.6c11.tar.gz
$ cd setuptools-0.6c11/
$ Sudo python setup.py build
$ Sudo python setup.py install
$ Sudo pip install --upgrade setuptools
それからすべてがうまくいくでしょう。