web-dev-qa-db-ja.com

Python setup.py開発とインストール

Setup.pyのdevelopinstallの2つのオプションが私を混乱させています。これによると site によると、developを使用するとsite-packagesディレクトリへの特別なリンクが作成されます。

フレッシュインストールにはpython setup.py installを、セットアップファイルに変更を加えた後はpython setup.py developを使うことを人々は提案しました。

誰かがこれらのコマンドの使用法に何らかの光を当てることはできますか?

269
Netro

python setup.py installは、あなたが自分で開発、修正、デバッグするつもりはないパッケージ(通常はサードパーティ)をインストールするために使用されます。

あなた自身のために、あなたは最初にあなたのパッケージをインストールして、それから頻繁にコードを編集することができることを望みますなし毎回パッケージを再インストールする必要はありません - そしてそれはまさにpython setup.py developがすることです:コードを(仮想)環境にインストールした後にコードを簡単に編集し、変更をすぐに有効にできるようにパッケージ化します(通常は単にソースフォルダ)。

pip install .を直接呼び出すと、プルプレリリースや互換性のないパッケージバージョンなど、多くの依存関係で間違ったことが行われたり、パッケージがインストールされにくくなるため、pip install -e .(インストール)およびsetup.py(開発者インストール)を使用することを強くお勧めします。 pipでアンインストールします。

369
Erik Allik

のドキュメント から。 developはパッケージをインストールしませんが、展開ディレクトリに.Egg-linkを作成してプロジェクトのソースコードディレクトリに戻します。

つまり、site-packagesにコピーする代わりにシンボリックリンクを追加するのと同じです(.Egg-linkはマルチプラットフォームのシンボリックリンクとして機能します)。

こうすることで、ソースコードを編集して変更を直接確認できます。変更を加えるたびに再インストールする必要はありません。これは、あなたがそのプロジェクトの開発者であり、したがってdevelopという名前である場合に役立ちます。他の人のパッケージをインストールするだけの場合はinstallを使うべきです。

94
ecerulm

developメソッドを使用するときに役に立つと思われるもう1つのことは、Sudoなしでインストールするための--userオプションです。例:

python setup.py develop --user

の代わりに

Sudo python setup.py develop
16
Taylor