Pythonパッケージをインストールする最良の方法は何ですか?


41

Ubuntu 11にPythonパッケージをインストールする最良の方法は何ですか?私は最近Ubuntuに改宗したため、ベストプラクティスを学びたいと思っています。

コンテキストとして、tweeststreamパッケージをインストールしようとしていますが、Synapticパッケージマネージャーに表示されませんでした。また、私はプログラミングに非常に新しいですが、私は通常、コードサンプルに沿って従うことができます。


回答:


30

あなたにとって最善の方法は、「python-pip」のようなPythonパッケージングシステムをインストールすることだと思います。SynapticまたはUbuntu Software Centerでインストールできます。

ピップは単に、あなたが簡単にPythonパッケージをインストールおよびアンインストールすることができますpip install package。あなたの場合、それは端末から次のようなものになります:

sudo pip install tweeststream

3
これは単純なパッケージでは問題ありませんが、たとえばnumpy
hayd

@hayd:なぜですか?それはaskubuntu.com/questions/595366/に
naught101

2
@ naught101私はおそらくscipyを意味していたと思いますが、それが関連しているかどうかはわかりません... pipがpythonパスで遅すぎるように見えます。anaconda / condaを使用することを強くお勧めします。これはpip IMOよりもはるかに優れています。
ハイド

2
私見使用sudo pip <anything>は非常に慎重に使用する必要があります。Ubuntu Software Centertweetstreamはないので、virtualenvを使用することをお勧めします。tweetstreamのは必要とされているUbuntuのパッケージ。にtweetstreamをインストールしないと、依存する他のUbuntuアプリが失敗する可能性があります。ハードトラブルシューティング。setup.pyanyjsonvirtualenvanyjson
マークミコフスキー

9
繰り返しますがsudo pip、Ubuntuでは使用しないでください。@MarkMikofski:virtualenvは必要ありません(何らかの特定の理由で必要ない限り)。現在のユーザーのpython -mpip install --user package-nameパッケージpackafe-nameをインストールできます。複雑な(大きなC拡張)依存関係がある場合; apt-get必要な場合を除き、ビルドの依存関係をインストールしないように、を使用してインストールできます。
jfs

37

更新:2019-05-11:この投稿は主に言及していますがvirtualenvモジュールのインストールに関するPythonドキュメントによると、Python 3.5は「venv仮想環境の作成に使用することが推奨される」virtualenvため、3.4より前のバージョンのPythonの代替です。

更新:2018-08-17:conda-4.4.0はすべてのプラットフォームでanacondaを使用するcondaためactivate

更新済み:2017-03-27:PEP 513- manylinuxPyPIのバイナリ

更新:2016-08-19:Continuum Anaconda Option

これはややeasy_install / pipまたはapt-getの複製です。

以下のための世界的な Pythonパッケージ、使用のいずれかのUbuntuソフトウェアセンターは、apt、apt-getのか、シナプス

Ubuntuは多くの重要な機能にPythonを使用しているため、Pythonに干渉するとOSが破損する可能性があります。これは私が使用しない主な理由であるpip私のUbuntuシステム上で、代わりに私はUbuntuのソフトウェアセンター、いずれかを使用シナプスapt-getちょうど、以降のaptすべてのデフォルトからパッケージをインストールする、Ubuntuのリポジトリ。これらのパッケージはテスト済みで、通常はプリコンパイルされているため、インストールが速くなり、最終的にはUbuntu向けに設計されています。さらに、必要な依存関係もすべてインストールされ、インストールのログが保持されるため、ロールバックできます。ほとんどのパッケージには対応するLaunchpadリポジトリがあるため、問題を報告できます。

いずれかのUbuntuパッケージを使用するもう1つの理由は、これらのPythonパッケージの名前がダウンロード元によって異なる場合があることです。Python-chardetは、かつてPyPIで1つ、Ubuntuリポジトリで1つの名前が付けられたパッケージの例です。したがってpip install requests、Ubuntuバージョンの名前が異なるため、システムにchardetが既にインストールされていることに気付かない場合があります。その結果、新しいバージョンをインストールします。

一般に、信頼できるコードのみをOSにインストールする必要があります。ですから、タイピング神経質になるはず$ sudo pip <anything-could-be-very-bad>です。

最後に、いずれかのUbuntuパッケージを使用して簡単にインストールできるものもあります。たとえばpip install numpy、gfortran、atlas-dev、blas-dev、lapack-devを既にインストールしていない限り、numpyとscipyをインストールしようとすると、コンパイルエラーの無限のストリームが表示されます。ただし、Ubuntuリポジトリを介してnumpyとscipyをインストールするのは簡単です...

$ sudo apt-get install python-numpy python-scipy

幸運なことに、あなたはUbuntuを使用しているのです。これは、最も広くサポートされており、既存の更新されたディストリビューションの1つです。ほとんどの場合、必要なPythonパッケージはすべてUbuntuリポジトリにあり、おそらく既にマシンにインストールされています。そして、6か月ごとに、Ubuntuの最新のディストリビューションで新しいサイクルのパッケージがリリースされます。

パッケージが何らかの方法でUbuntuシステムに干渉しないと100%確信している場合、pipを使用してインストールできます。dist-packages/。Ubuntuリポジトリには、pip、virtualenv、setuptoolsの両方があります。ただし、virtualenvを使用するというWojciechの提案は2番目です。

以下のために個人的な Pythonのプロジェクトはvirtualenvにピップとホイールを使用

最新バージョンが必要な場合、またはモジュールがUbuntuリポジトリにない場合は、virtualenvを起動し、pipを使用してパッケージをインストールします。pipとsetuptoolsはマージされましたが、IMO pipはeasy-installやdistutilsよりも優先されます。パッケージがファイルシステムにコピーされる前にパッケージが完全にダウンロードされてビルドされるまで常に待機し、簡単にアップグレードまたはアンインストールします。多くの点でapt-getに似ていますが、一般的に依存関係をうまく処理します。ただし、いくつかの依存関係を自分で処理する 必要ありますが、PEP 513が採用されて以来manylinuxUbuntuやFedoraなどの人気のあるLinuxディストリビューション用のPythonパッケージインデックス(PyPI)にバイナリがあります例えばnumpyのとscipyのダウンロードのために上記のようにあなたがUbuntuのリポジトリからのgfortran、アトラス-devの、BLAS-devのとLAPACK-devのをインストールしている作るたとえば、両方のnumpyのscipyのダウンロードは、今のようにUbuntuのために配布されているmanylinuxホイール、デフォルトでは代わりにOpenBLASを使用してATLASの。それでも、pipオプション--no-use-wheelまたは--no-binary <format control>を使用して、ソースからビルドできます

~$ sudo apt-get install gfortran libblas-dev liblapack-dev libatlas-dev python-virtualenv
~$ mkdir ~/.venvs
~$ virtualenv ~/.venvs/my_py_proj
~$ source ~/.venvs/my_py_proj/bin/activate
~(my_py_proj)$ pip install --no-use-wheel numpy scipy

次のセクションを参照してください、「あなたにはありませんよsudoers、あなたにピップ、setuptoolsの、virtualenvのか、車輪の最新バージョンをインストールするために、下記の」個人的な使用してプロファイル--userピップとインストールスキームを。JFセバスチャンが別の回答へのコメントで示したように、これを使用して個人用にpipを更新できます。注:これ-mは、MS Windowsでpipを更新する場合にのみ必要です。

python -m pip install --user pip setuptools wheel virtualenv

新しいバージョンのpipはホイールを自動的にキャッシュするため、以下は古いバージョンのpipでのみ役立ちます。これらを何度もインストールすることになってしまう可能性があるため、wheelをpipで使用して操舵室を作成することを検討してください。ホイールはvirtualenvv13.0.0以降に既に含まれているため、バージョンがvirtualenv古すぎる場合は、最初にホイールをインストールする必要があります。

~(my_py_proj)$ pip install wheel  # only for virtualenv < v13.0.0
~(my_py_proj)$ pip wheel --no-use-wheel numpy scipy

これにより、別のディレクトリを指定する<cwd>/wheelhouseために使用するバイナリホイールファイルが作成さ-dれます。別のvirtualenvを起動し、すでにビルドした同じパッケージが必要な場合は、次を使用してホイールハウスからインストールできますpip install --find-links=<fullpath>/wheelhouse

読んでPythonのモジュールのインストール PythonドキュメントにしてパッケージをインストールするはPythonパッケージインデックスのメインページ。また、pipvenvvirtualenvおよびwheel

あなたがいない場合sudoersvirtualenvインストールされていません。

仮想環境を使用する別のオプション、またはルート権限なしでLinux共有を使用している場合は--user--home=<wherever-you-want>Python またはPythonインストールスキームのいずれかを使用して、distutilsパッケージを任意の値または任意の場所にインストールしますsite.USERBASE。pipの新しいバージョンにも--userオプションがあります。使用しないでくださいsudo

pip install --user virtualenv

Linuxバージョンのpipが古すぎる場合は、セットアップオプションを渡すことができます。--install-optionこれを使用するとsetup.py、拡張機能を構築する一部のパッケージのスクリプトにカスタムオプションを渡すのに便利ですPREFIX。単にディストリビューションを抽出し、distutilsを入力して旧式の方法でパッケージをインストールする必要がある場合がありますpython setup install [options]。いくつか読んでドキュメントをインストールし、distutilsドキュメントが役立つことを。

Pythonは他の何よりも先に追加site.USERBASEするのに十分PYTHONPATHであるため、変更はあなたにのみ影響します。の人気のある場所は--homeです~/.local。正確なファイル構造、具体的にはサイトパッケージの場所については、Python モジュールインストールガイドを参照してください。--homeインストールスキームを使用する場合、Pythonでローカライズされたパッケージを使用できるようにするには、またはシェルでをPYTHONPATH使用exportして環境変数に追加する必要があります。.bashrc.bash_profile

使用連続アナコンダのPython数学、理科、データ、または個人的なプロジェクトのために

数学、科学、またはデータのいずれかにPythonを使用している場合、IMOには、Anaconda-Pythonディストリビューション、またはAnaconda、Inc.(以前はContinuum Analyticsとして知られていました)がリリースしたより基本的なminicondaディストリビューションが最適です。個人プロジェクトにAnacondaを使用することで誰もが恩恵を受けることができますが、デフォルトのインストールにはNumPy、SciPy、Pandas、Matplotlibなどの500以上の数学および科学パッケージが含まれますが、minicondaはAnaconda-Pythonおよびconda環境マネージャーのみをインストールします。Anacondaは、個人プロファイルにのみインストールします。つまりユーザー変更したり、個人推奨ソースへのAnacondaのパスを追加したりします。 /home/<user>/~/.bashrc~/.bash_profile$PATH conda.shあなたのanacondaを起動~/.bashrcするために使用することができますconda activate <env|default is base> - これはあなたにのみ影響します -あなたのシステムパスは変更されていません。したがって、ルートアクセスやAnacondaを使用する必要ありませsudoすでにAnaconda-Python、miniconda、またはcondaを個人パスに追加している場合は、PATHからエクスポートを削除~/.bashrcし、新しい推奨事項に更新して、システムPythonが再び最初になるようにする必要があります。

これは、--userパッケージだけでなくPython全体に適用されることを除いて、前のセクションで説明したオプションと多少似ています。したがって、AnacondaはシステムPythonとは完全に分離されておりシステムPythonに干渉することはなく、ユーザーのみがそれを使用または変更できます。Pythonの新しいバージョンとそのすべてのライブラリをインストールするため、少なくとも200MBのスペースが必要になりますが、Anacondaで実行できるクールな機能のいくつかにとって重要なライブラリのキャッシュと管理については非常に賢明です。

Anacondaは、オンラインリポジトリ(以前のbinstarと呼ばれる)の依存関係に必要なPythonバイナリとライブラリのコレクションをキュレートし、ユーザーパッケージを異なる「チャネル」としてホストします。Anacondaが使用するパッケージマネージャーはconda、デフォルトでAnacondaからパッケージをインストールしますが、-cオプションを使用して別の「チャンネル」に信号を送ることができます。

次のcondaようにパッケージをインストールしますpip

$ conda install -c pvlib pvlib  # install pvlib pkg from pvlib channel

しかしconda、それ以上のことができます!また、仮想環境を作成および管理することもできますvirtualenv。したがって、Anacondaは仮想環境を作成するため、pipパッケージマネージャーを使用して、rootまたはなしでPyPIからAnaconda環境にパッケージをインストールできますsudo。Anaconda では使用しないでくださいsudo警告!混合時にかかわらず、Doが注意するpipcondaアナコンダ環境では、B / Cあなたはより慎重にパッケージの依存関係を管理する必要があります。pipconda環境でのもう1つのオプションは、conda-forgeチャネルを使用することです、しかしデフォルトのチャネルとしてconda-forgeを使用した新鮮なconda環境でそれを行うのが最善です。最後の手段として、PyPI以外にパッケージが見つからない場合は、使用を検討し--no-deps、残りの依存関係をを使用して手動でインストールしcondaます。

Anacondaは、そのツールに精通している場合、いくつかの点でRuby RVMに似ています。Anaconda condaでは、異なるバージョンのPythonで仮想環境を作成することもできます。conda create -n py35sci python==3.5.2 numpy scipy matplotlib pandas statsmodels seabornと呼ばれる新しい環境でPython-3.5を使用して科学/データ科学スタックを作成しますpy35sci。を使用して環境を切り替えることができますconda。conda-4.4.0ので、これは今で異なるvirtualenvその用途source venv/bin/activateに、しかし前conda-4.4.0condaコマンドがあった同じようvirtualenvとも使用しますsource

# AFTER conda-4.4 
~/Projects/myproj $ conda activate py35sci

# BEFORE conda-4.4 
~/Projects/myproj $ source activate py35sci

しかし、もっと待ってください!Anacondaは、統計プログラミング用のRなどのさまざまな言語をAnaconda rチャネルからインストールすることもできますconda用に構築されたパッケージ配布をアップロードするために、独自のチャネルをセットアップすることもできます。前述のようにconda鍛造は、自動化された維持では、PyPI上のパッケージの多くのビルドconda鍛造アナコンダチャンネル

エピローグ

個人のニーズとアクセスに応じて、LinuxでPythonプロジェクトを保守するための多くのオプションがあります。ただし、この回答から1つだけお聞きしたいことがある場合sudoは、Pythonパッケージのインストールに使用する必要はほとんどないということです。の使用は、何かがおかしいというあなたへsudo匂いでなければなりません。あなたは警告されました。

幸運と幸せなコーディング!


私はで私のシステムのPythonディストリビューションを破壊する前に、私はこれを読んだたいsudoと周りのINGのpip。この情報に感謝します。
-slhck

pip install numpyすべての依存関係をインストールする必要があります
ティモ

PEP 513多くのLinux によって実装されて以来、2017-03-27アップデートで言及した@Timo は、OpenBLASで構築されたPyPI利用可能です。つまり、必要な依存関係があります。ただし、原則として、pip install <package>install_requiresセクションにリストされているPythonパッケージの依存関係のみをインストールしますsetup.py。例:Jupyterをインストールしても、Haskellライブラリpandocはインストールされず、JupyterノートブックをLaTeXなどとしてエクスポートできません
Mark Mikofski

対照的conda install <package>に、condaはpipのようなPythonパッケージを管理するだけでなく、環境を管理するため、C / C ++、FORTRANなど、Haskellライブラリを含むすべての依存関係をインストールする可能性があります。そのため、Anacondaまたはminicondaがある場合、pandoc Haskellライブラリを含むconda install Jupyterすべてをレシピのmeta.ymlファイルにインストールします。詳細については、PyPA
Mark Mikofski

10

Novarchibaldの追加に加えて、Pythonプロジェクト用の仮想環境を作成し、内部に依存関係をインストールすることをお勧めします。これにより、依存関係とそのバージョンをより適切に制御できます。仮想環境をセットアップするには、次のように入力します。

virtualenv --no-site-packages --distribute my_python_project

次に、次を使用してアクティブにします。

cd my_python_project
source bin/activate

この時点で、pipでインストールしたものはすべてこの仮想環境内に保持されます。何かをグローバルにインストールしたい場合は、まずvirtualenvを終了する必要があります:

deactivate

virtualenvの詳細については、こちらをご覧ください


1
または、virtualenv binディレクトリ(ここではmy_python_project / bin / pip)のpipを使用して、「アクティブ化」する必要なしにその環境を維持します。次に-ビンにインストールされているスクリプトのいずれかを使用すると、指定されたvirutalenvが使用されます。「アクティブ化」は、virtualenv固有のビンを使用して「python」、「easy_install」、および「pip」を呼び出すのに便利です。
ヤンヴルチンスキー

Pythonのインストールドキュメントでは、「pyvenv」を使用してプロジェクトに固有の仮想環境を作成すると言われています。ただし、そのvirtualenvは、古いpythonバージョンdocs.python.org/3/installing/index.html?highlight=pipを使用するプロジェクトのフォールバックです。
pbhj 14年

2
virtualenvオプション--no-site-packages--distributeは現在では非推奨であり、もはや効果がないことに注意してください。
飼料

4

Zetah'aの回答に加えて、ターミナルからpython-pipをインストールするコマンドは次のとおりです。

sudo apt-get install python-pip

1

PyQt4を使用して開発されたPIP用のGUIフレームワークをお試しください

PyQt4を使用して開発されたPIP用のGUIフレームワーク

スタート画面

ここに画像の説明を入力してください

開始画面には、ユーザーが実行したいプロセスを選択するためのオプションが含まれています。

操作を実行するPythonのバージョンを指定することもできます。

ファイルメニューには、[終了](ショートカット:Ctrl + Q)および[リストの更新]オプションがあり、パッケージデータを含むリソースファイルを更新します。

インストール画面

ここに画像の説明を入力してください

インストール画面には、ユーザーが目的のパッケージを検索してインストールするために使用できる検索バーがあります。

更新画面

ここに画像の説明を入力してください

更新画面には、期限切れでアップグレード可能なパッケージのリストが表示されます。

アンインストールスクリム

ここに画像の説明を入力してください

アンインストール画面には、ユーザーのシステムにインストールされ、アンインストールできるパッケージのリストが表示されます。

進行状況ウィンドウ

ここに画像の説明を入力してください

進行状況ウィンドウは、操作の実行中に実行中のプロセスを表示するPIP-GUI用の組み込みの端末ウィジェットです。


1
Ask Ubuntuへようこそ!これは理論的には質問に回答するかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供することが望ましいでしょう
ケビンボーウェン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.