web-dev-qa-db-ja.com

setup.pyがeggとしてインストールされないようにする

停止する方法setup.pyパッケージを卵としてインストールすることから?またはさらに良い方法はeasy_installパッケージをEggとしてインストールすることから?

Sudo python setup.py install

その理由は、PyDevEgg形式のパッケージについてかなりうるさいからです...私が現在興味を持っているパッケージはbotoです。

更新:ブルートフォースの方法を見つけました:

Sudo easy_install -m boto
cd path/to/boto-xyz.Egg
Sudo mv boto ..
Sudo rm -rf boto-xyz.Egg
57
jldupont

私は微妙なまたは重要な何かを見逃しているように感じます(質問が尋ねられてから数年後にこのページに遭遇し、満足のいく答えが見つからない)。しかし、以下は私にとってはうまくいきます:

python setup.py install --single-version-externally-managed --root=/

圧縮*.Eggファイルは setuptools の発明です(作成された理由は理解していますが、私はそれらの大ファンではありません)。また、setup.pyスクリプトが使用しているため(および必要な場合があります)setuptools、パッケージは圧縮された*.Eggファイルとしてインストールされます。

上記のコマンドラインオプションは それらと同様 pipによって使用されます(Pythonパッケージマネージャー))。これは、パッケージが圧縮としてインストールされないようにする別の方法を示唆しています*.Eggファイル:pipを使用してください!setup.pyスクリプトを含むディレクトリがある場合は、そのディレクトリで次のコマンドを実行して、pipを使用してパッケージをインストールできます。

pip install .

これは、追加のメタデータを追跡するため、上記のsetup.pyコマンドを改善したものです(たとえば、インストールされたファイルを追跡すると、より信頼性の高い削除が可能になります)。

59
xolox

数年後、同じ問題、受け入れられた答えに満足していません。これはGoogleグループで見つかりました:

pushd /path/to/my/package/ 
python setup.py sdist 
popd 
pip install /path/to/my/package/dist/package-1.0.tar.gz

説明: python setup.py sdistsource distributionを作成しますが、これは当然* .Eggではありません!結果のアーカイブ(UNIXでは.tar.gz、Windowsでは.Zip)は、pipを使用したリモートモジュールのようにインストールできます。追加のパラメーターも必要ありません!これにより、目的の完全に参照可能なモジュールが作成されます。

15
freeo