回答:
python setup.py install 自分で開発/変更/デバッグしないパッケージ(通常はサードパーティ)をインストールするために使用されます。
あなた自身のものについては、最初にパッケージをインストールしてから、毎回パッケージを再インストールする必要なしにコードを頻繁に編集できるようにしたいと思います—これがまさに何をするかpython setup.py developです:パッケージをインストールします(通常はソースフォルダーのみ) (仮想)環境にインストールした後、コードを簡単に編集し、変更をすぐに有効にすることができる方法で。
pip install .(インストール)とpip install -e .(開発者インストール)を使用してパッケージをインストールすることを強くお勧めします。setup.py直接起動すると、プルプレリリースや互換性のないパッケージバージョンなど、多くの依存関係に対して誤った処理が行われたり、を使用したパッケージのアンインストールが困難になったりするためpipです。
setup.py develop、Pythonパッケージをハッキングするときの別のオプションは、「パッケージを適切に解決するための単純な(ただし明示的な)パス変更」を使用することですre Kenneth Reitz
python setup.py developローカル開発用にCeilometerをセットアップしようとすると問題が発生しました。を介して発生する問題pip install -e PATHを回避するために、私は(virtualenv内で)使用することになりましたeasy_install。
python setup.py develop別の方法で実行する必要がありますか?
ドキュメントから。developパッケージをインストールしませんが、それは作成され.egg-link、プロジェクトのソースコードディレクトリに展開ディレクトリバックに。
インストールのようなものですが、コピーする代わりにsite-packagesシンボリックリンクを追加します(.egg-linkマルチプラットフォームシンボリックリンクとして機能します)。
そうすれば、少し変更を加えるたびに再インストールする必要なく、ソースコードを編集して変更を直接確認できます。これは、あなたがそのプロジェクトの開発者である場合に役立ちますdevelop。あなたが誰か他の人のパッケージをインストールしているだけなら、あなたは使うべきですinstall
このdevelop方法を使用するときに人々が役立つと感じるもう1つのことは、--usersudoなしでインストールするオプションです。例:
python setup.py develop --user
の代わりに
sudo python setup.py develop
setup.py developあなたのシステムでは決してすべきではありません、これはvirtualenvでのみ意味があります。
python setup.py develop --user私が正しく理解していれば、常にを使用する必要があるということですか?また、パッケージのインストール先を教えてくださいpython setup.py develop --user。ありがとう!
--userホームアカウントのディレクトリにインストールされ、システムの他のユーザーには影響しないと思います。develop実際には、すべてをコピーするのではなく、プロジェクトのソースディレクトリへのリンクを行います。develop --userOK developで、virtualenvでも大丈夫です。developプロジェクトのソースコードの個人用コピーにあるプロジェクトを指すものを他のユーザーが使用している可能性があるため、実際のシステムだけが奇妙です。
setup.py develop付いている--uninstallことです。