pip freezeコマンドの出力の「pkg-resources == 0.0.0」とは


157

実行するpip freezeと、(他の予想されるパッケージの中で)が表示されますpkg-resources==0.0.0。私は(を含むこのパッケージに言及するいくつかの記事見てきたこの1を)が、どれもそれが何であるかを説明していない、またはそれはの出力に含まれている理由pip freeze。私が気になっている主な理由は、好奇心が足りないことですが、それを含む行を含むrequirements.txtファイルを生成しpip freezeてパッケージをインストールしようとすると、問題が発生する場合がありますpkg-resources==0.0.0(たとえば、Travis CIが依存関係をインストールしようとしてpipこれを見つけた場合)ライン)。

何でありpkg-resources、この行を削除しても大丈夫requirements.txtですか?

更新:

この行はpip freeze、私がにいるときの出力にのみ存在するようですvirtualenv。それが何であるか、またはそれが何をするかはまだわかりませんが、それがに関連している可能性があることを知ってさらに調査しvirtualenvます。


「pkg-resources == 0.0.0行を含むpipフリーズで生成されたrequirements.txtファイルを含むパッケージをインストールしようとすると、場合によっては問題が発生するようです。 " 。その例を挙げてもらえますか?
Dimitris Fasarakis Hilliard 2016

@ジム、良い点。私が遭遇した例を追加しました。
elethan '19

えっと、あなたのバージョンはpip?私はに8.1.2エントリーがないので、これは古いリリースで見逃していたものかもしれないと思っていpkg-resourcesます。(私はかなりpkg-resources付属していると確信しているので、それはすべきではありませんsetuptools)。
Dimitris Fasarakis Hilliard

1
ちょうどそれがに関連することができることを私に起こった@Jim virtualenv、そして実際、私はときではない virtualenvの中で、私はどちらかそれを見ることはありません。これはまだそれが何であるかを説明していませんが、少なくとも私が調査できる手掛かりです。
elethan '19

回答:


181

https://github.com/pypa/pip/issues/4022によると、これはUbuntuが誤ったメタデータをpipに提供することに起因するバグです。したがって、この動作の正当な理由はないようです。Ubuntuにフォローアップバグを報告しました。https://bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463

以前の回答をバックアップするには、requirements.txtからその行を削除しても安全です。以下は、パッケージリストを安全に凍結するMakeファイルスタンザの例です(Makefileにドロップして、で実行しますmake freeze)。

freeze:
    pip freeze | grep -v "pkg-resources" > requirements.txt

9
Ubuntu固有のバグではありません。debianにも同じ問題があります
クラゲ

1
最初@MohammedShareefCのアイデアで仕事をするように見えたが、その後、私は得たAttributeError: module 'pkg_resources' has no attribute 'iter_entry_points'私はちょうどからそれを削除するために最善を考えているので、requirements.txt
のaroD

2
herokuにデプロイしようとすると依然として頭痛の種
Martins

3
これは、ubuntu 18.04でまだ問題のようです
Carmine Tambascia

3
Ubuntu 19.04上のPython 3.8の問題はまだ残っています
eric.frederich

13

質問の一部については、「この行を削除してもよろしいですか?」:

私はここでubuntu 16.04で開発している同じ問題を抱えており、要件のまさにその通りです。debian 8.5にデプロイすると、"pip install -r requirements.txt"pipを実行するとpkg-resourcesが「見つからない」というメッセージが表示されますが、「python-pkg-resources」がインストールされているグローバルパッケージがあるため、依存関係を満たす必要があります。Ubuntuでも同じ:パッケージもそこにあります。

ここで述べように、それはいくつかの「暗黙的にインストールされたパッケージ」のようです。

したがって:python-pkg-resourcesがインストールされているDebian / Ubuntuを使用している場合は、その行を削除しても安全です。私はそうしました、そして、すべてがうまく動いています。ただし、私はこれについての専門家ではないため、別のマシンに展開するときに複雑になる可能性があることに注意してください。


情報をありがとう。私もそれを削除してしまい、結果も見ていませんが、あなたが言及した同じ警告がもちろん適用されます。どこに/からもインストールしvirtualenvますか?
2016

はい、virtualenv内からインストールしてみました。システム全体のパッケージが存在し、台無しにしたくなかったので、pipごとにシステム全体にインストールしようとしませんでした。
karlsebal 2016

1

このリンクでこの回答を見つけました:https : //bugs.launchpad.net/ubuntu/+source/python-pip/+bug/1635463

作成者:Louis Bouchard(ルイ)が2019-11-16に書いた:

それは私のために働いた。しかし、私は専門家ではないので、誰かがそれをうまく理解できない場合、それを説明すれば素晴らしいでしょう。

こんにちは、

価値があるのは、問題は、作成時にvirtualenvに追加されるpkg_resourceのバンドル解除されたバージョンを使用する、virtualenvのdebian化されたバージョンにあります。

$ virtualenv .
Running virtualenv with interpreter /usr/bin/python2
New python executable in /home/caribou/git/quividi/test/bin/python2
Also creating executable in /home/caribou/git/quividi/test/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
$ pip freeze
pkg-resources==0.0.0

virtualenvのpipインストール済みバージョンを使用すると、実行可能な回避策になります。

$ sudo apt -y purge python3-virtualenv virtualenv tox
$ pip install virtualenv
$ virtualenv .
pip install virtualenv
Collecting virtualenv
  Downloading https://files.pythonhosted.org/packages/c5/97/00dd42a0fc41e9016b23f07ec7f657f636cb672fad9cf72b80f8f65c6a46/virtualenv-16.7.7-py2.py3-none-any.whl (3.4MB)
    100% |████████████████████████████████| 3.4MB 351kB/s
Installing collected packages: virtualenv
Successfully installed virtualenv-16.7.7
$ virtualenv .
New python executable in /home/caribou/git/quividi/test/bin/python
Installing setuptools, pip, wheel...
done.
$ source bin/activate
$ pip freeze
$

hth、...ルイ


-2

Ubuntuでは、Ubuntu virtualenvパッケージを削除して新しいバージョンをインストールすることでこれを修正できますpip

sudo apt remove virtualenv
sudo pip install -U virtualenv
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.