7

setuptoolsによって Python の名前空間パッケージの背後にある神話を理解するのが好きです。これが私がテストしたものです。

  • で仮想環境を作りますvirtualenv
  • PyPIで名前空間付きのパッケージを見つけます。
  • でそのパッケージをインストールしますpip install
  • インストールされたファイル階層を確認してください。

私が使用したパッケージはzope.interfaceで、virtualenv の次のファイル階層でうまく機能しました。

~virenv/.../site-packages/zope.interface-3.8.0-py2.6-nspkg.pth
                         /zope.interface-3.8.0-py2.6.egg-info/
                         /zope/
                              /interface/
                                        /...

すべてがうまく見え、zope.interfaceが実際の名前空間付きパッケージとしてインストールされる方法が気に入っています (フォルダーzopeの下)。

それから、私は別のテストを行いました。それがあなたの助けを求めたい質問です. tared zope.interfaceソース ファイルをダウンロードしました。もう一度手動で再生するのが好きだった

  • で仮想環境を作りますvirtualenv
  • zope.interfaceをどこかにuntarします。
  • でパッケージをインストールしますpython setup.py install
  • site-packagesで何が起こったのかを確認してください。

サイトパッケージは次のようになります。

~virenv/../site-packages/zope.interface-...egg/
                                              /zope/
                                                   /__init__.py
                                                   /interface/
                                              /EGG-INFO/

pip installQ.手動では正確な結果が得られないのはpython setup.py installなぜですか?

4

2 に答える 2

15

pipsetup.py内部で使用します。追加のオプションを渡すだけです。実行していることを再現するにpipは、実行します

python setup.py install --single-version-externally-managed

pip -vv実行して、どのコマンドが実行されているかを正確に確認することもできます。

于 2012-04-16T12:08:56.807 に答える
-8

Q. python setup.py install を手動で pip install すると正確な結果が得られないのはなぜですか?

pipsetup.pyは 2 つの異なるソフトウェアであるためです。

pipは と同じ動作を提供するとは宣伝されておらずsetup.py、その逆もありません。

の動作が必要な場合は、 ;pipを使用します。pipの動作が必要な場合はsetup.py、 を使用しますsetup.py

于 2012-04-16T10:21:03.810 に答える