「エラー:オプション--single-version-externally-managed not notifications」は何を示していますか?


102

varionsパッケージ(およびを含む)error: option --single-version-externally-managed not recognizedpip installingを実行すると、突然エラーが発生し始めたようです。これまでにこのエラーを見たことがありませんが、何も変更されていないtravis-ciビルドにも表示されます。PyObjCastropy

このエラーは古い配布を示していますか?または、いくつかの誤って指定されたオプションsetup.py?それとも完全に別のものですか?

回答:


84

新しいアップデート:

最新バージョンのをインストールしますsetuptools。それでもエラーが発生する場合は、インストールwheelしてください。

pip install -U setuptools
pip install -U wheel

元の回答/詳細:

--single-version-externally-managed Pythonパッケージに使用されるオプションで、setuptoolsモジュールに、YumやAptなどの必要に応じてホストのパッケージマネージャーで簡単に管理できるPythonパッケージを作成するように指示します。

このメッセージが表示された場合は、古いバージョンのsetuptoolsまたはPythonを使用している可能性があります。Setuptoolsの新しいバージョンであり、下位互換性のあるDistributeを使用してみてください。これらのパッケージは、あなたがすでにそれを持っていることを期待しているかもしれません。

https://pypi.python.org/pypi/distribute

編集:この時点で、配布はメインsetuptoolsプロジェクトにマージされています。最新バージョンのをインストールするだけですsetuptools。@wynemoが示したように、--egg配布用のシステムパッケージを作成するつもりがない手動インストールを行う方が適切であるため、代わりにこのオプションを使用することをお勧めします。


1
表示されたバージョンを追加できますか?setuptools 0.6を使用していますが、pipは新しいバージョンを認識していません。distribute正しく聞こえますが、インポートできません...
keflavich

あなたはしませんimport distribute。配布はドロップイン置換であり、同じモジュール名を持っています。import setuptoolsそれにも必要です。
Kelketek 2013年

次に、両方をインストールしている場合は、setuptoolsが配布をオーバーライドしないようにする必要があります。あなたはpipでdistributeをインストールしてからsetuptoolsを削除するべきです。私はそれがうまくいくと思います。
Kelketek 2013年

17
追加する必要があります:今後は配布を使用しないでください。Distributeはsetuptoolsプロジェクトにマージされて戻ってきたので、setuptoolsすべてをルール化するために1つしかありません。
イグアナナウ2013

1
@johntex、この回答は、distributeとsetuptoolsがまだマージされていない1年以上前に作成されました(または、それらがマージされている場合は、聞いていません)。更新しました。
Kelketek 2014

136

--eggオプションを追加

pip install --egg SCons

pipバージョン1.4.1 を使用しています


10
それが実際に役立つ唯一のソリューションでした。最近のpipとsetuptoolsはすでにインストールされていますが、このエラーが嫌いです。
Michael

私はpyenvにこの問題があり、これを修正しました。
グラウコン

13
誰かがこのオプションの意味を詳しく説明できますか?なぜこれが機能するのですか?
kawing-chiu

4
これは私にとってはうまくいきましたが、次のエラーも発生しました。インストールプロセス。」
natersoz 2017年

2
no such option: --eggピップ18.1で
gdw2 '19年

45

インストールすると、wheelこの問題が最近解決されましたpip(8.1.2を使用しました):

pip install wheel

問題がなければ、編集に戻すことができます。の正確なバージョンpipwheel修正された場所がわかっている場合は、再び壊れる可能性があるので、それを言及する価値があります。また、答えはとにかく何が起こっているかを説明していません。
anatly techtonik 2016年

@sparrowtからのこのプラスの回答で問題が解決しました
David Poxon 2017年

7

次のようにsetuptoolsをアップグレードしてみてください:

pip install --upgrade setuptools


5

私はこの問題を抱えていました。それは私のpipキャッシュのファイルパーミッションに問題があることがわかりました。

次のようなpip出力の最初にメッセージが表示された場合

The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.

同じ問題があるかもしれません。これを解決するには、pipキャッシュ(のようなものchown -R $(whoami) /home/ubuntu/.cache/pip)に対する適切なファイル権限があることを確認するか、UNIXを使用している場合は、XDG_CACHE_HOMEenv varを使用してpipキャッシュの場所を自分が所有するフォルダーに設定します。


驚いたことに、それも私にはうまくいきました(sudoパッケージのインストールに使用する場合は、必ず-Hフラグを追加してください)。キャッシュとコマンドオプションエラーの関係はわかりませんが、気にしません。
Delgan

1

上記の解決策を試しました。ただし、問題が解決するのは、解決するまでです。

sudo pip3 install -U pip (python3の場合)


0

1つのpythonパッケージをアップグレードしようとしたときにも、Macbookでこの問題が発生しました。OS Xでpipのバージョンを確認しましたが、古すぎます:1.1。follow cmdを使用してpipを1.5.6にアップグレードします

easy_install -U pip

その後、このエラーは修正されます。

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