[解決済み] python setup.py install と pip install の違いについて
質問
python virtualenv に tar ファイルからインストールしたい外部パッケージがあります。 パッケージをインストールする最良の方法は何ですか?
私はそれを行うことができる2つの方法を発見しました。
-
tar ファイルを解凍し、次に
python setup.py install
を実行してください。 -
pip install packagename.tar.gz
の例7から https://pip.pypa.io/en/stable/reference/pip_install/#examples
この2つの方法で行うことに何か違いがあるのでしょうか。
どのように解決するのですか?
表面的には、どちらも同じことを行っています。
python setup.py install
または
pip install <PACKAGE-NAME>
は、最小限の手間で、あなたのために python パッケージをインストールします。
しかし、pipを使用することで、さらにいくつかの利点があり、より快適に使用することができます。
-
pip は、パッケージのすべての依存関係を自動的にダウンロードしてくれます。対照的に、もしあなたが
setup.py
を使う場合は、しばしば手動で依存関係を検索してダウンロードしなければなりませんが、これは面倒でイライラすることがあります。 -
pip は様々なメタデータを記録しているので、1 つのコマンドで簡単にパッケージのアンインストールやアップデートを行うことができます。
pip uninstall <PACKAGE-NAME>
とpip install --upgrade <PACKAGE-NAME>
. これに対して、パッケージをインストールする際にsetup.py
を使用してインストールした場合、パッケージを削除したい場合は手動で削除して保守する必要があり、潜在的にエラーが発生しやすい可能性があります。 -
ファイルを手動でダウンロードする必要はもうありません。もしあなたが
setup.py
を使う場合は、ライブラリのウェブサイトを訪れ、 どこでダウンロードできるかを調べ、ファイルを解凍しsetup.py
... これに対して、pipは自動的に Pythonパッケージインデックス (PyPi) を自動的に検索し、そこにパッケージが存在するかどうかを確認し、あなたのためにパッケージを自動的にダウンロードし、抽出し、インストールするのです。いくつかの例外を除いて、本当に役に立つ Python のライブラリはほとんどすべて PyPi で見つけることができます。 - pip はあなたに を簡単にインストールできます。 ホイールは、Pythonディストリビューションの新しい標準です。 wheelsの詳細情報 .
-
を使用することで統合される追加の利点を提供します。
virtualenv
これは、コンピュータ上で相反するライブラリやPythonのバージョンを必要とする複数のプロジェクトを実行できるようにするプログラムです。 より詳しい情報 . - pip は Python 2.x 系では Python 2.7.9 から、Python 3.x 系では Python 3.4.0 からデフォルトでバンドルされており、より使いやすくなっています。
というわけで、基本的にはpipを使いましょう。を使うよりも改善されるだけです。
python setup.py install
.
古いバージョンのPythonを使用していて、アップグレードできず、pipがインストールされていない場合、以下のリンクでpipのインストールに関する詳細な情報を見つけることができます。
pipは、それ自体では、本当にチュートリアルを必要としません。90%の場合、本当に必要なコマンドは
pip install <PACKAGE-NAME>
. とはいえ、もしあなたがpipでできることの詳細についてもっと知りたいのであれば、以下を参照してください。
また、一般的にpipとvirtualenvを併用することが推奨されています。Python初心者の方は、最初はpipを使ってグローバルにパッケージをインストールするだけでも良いと思いますが、より本格的なプロジェクトに取り組む際には、virtualenvを使うように移行した方が良いと個人的には考えています。
pipとvirtualenvを一緒に使うことについてもっと学びたいなら、以下を参照してください。
関連
-
任意波形を生成してtxtで保存するためのPython実装
-
[解決済み] staticmethodとclassmethodの違いについて
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み] Windowsにpipをインストールするにはどうしたらいいですか?
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] ローカルディレクトリからrequirements.txtファイルに従ってpipを使用してパッケージをインストールするにはどうすればよいですか?
-
[解決済み] pipとcondaの違いは何ですか?
-
[解決済み] pipと要件ファイルを使って、特定のパッケージをアップグレードするにはどうすればよいですか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】python setup.pyのアンインストール
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
Python LeNetネットワークの説明とpytorchでの実装
-
Python 入出力と高次代入の基礎知識
-
[解決済み】Python regex AttributeError: 'NoneType' オブジェクトに 'group' 属性がない。
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み】Python: SyntaxError: キーワードは式になり得ない
-
[解決済み】ValueError: xとyは同じサイズでなければならない
-
[解決済み] Windowsにpipをインストールするにはどうしたらいいですか?
-
[解決済み] [Solved] .whlファイル付きのPythonパッケージをインストールする方法は?
-
[解決済み] Git リポジトリを依存関係に含む setup.py の書き方