回答:
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つのことは、--user
sudoなしでインストールするオプションです。例:
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 --user
OK develop
で、virtualenvでも大丈夫です。develop
プロジェクトのソースコードの個人用コピーにあるプロジェクトを指すものを他のユーザーが使用している可能性があるため、実際のシステムだけが奇妙です。
setup.py develop
付いている--uninstall
ことです。