PythonパッケージをインストールするためのpipとMacPortsの使用


12

Macports経由で私のMacにPythonパッケージ(例えばnumpy)をインストールすることができます:

port install py-numpy

または経由pip

pip install numpy

各アプローチの一般的な長所/短所は何ですか?それぞれのアプローチはいつ使用すべきですか?

  • どちらを優先するべきですか?
  • インストールするパッケージが小さいか大きいnumpyか(例:)は重要ですか?
  • それは私が使用しているpythonのバージョン(2.xvs 3.x、またはApple pythonとMacPortのバージョン)に依存しpythonますか?
  • pythonMacに複数のバージョンがインストールされているかどうかは重要ですか?
  • 同時に使用できますか?

私は、それぞれのアプローチの長所/短所の短いリストと、どちらを選択するかについての議論がある回答を期待しています。


関連しているが具体的すぎる:stackoverflow.com/questions/16895282/…。私は単にではなく、一般的なpythonパッケージを求めていますmatplotlib
jvriesem

これらはすでにインストールされています-ターミナルでチェックインできます:> pythonおよび次のコマンド> numpyとしてnumpyをインポートし、エラーがない場合はそれを持っています。別の解決策は、continuum.io / downloadsからanacondaを使用することです。多くの機能があり、pip を使用してさらにインストールすると、anacondaフォルダーに格納されます。
Yoan

@ヨアン:numpyほんの一例です。パッケージのインストール全般についてお聞きします。
jvriesem

回答:


3

それらは同時に使用でき、2つを混合しても問題はありません(1つの大きな警告と落とし穴が...)。

警告

注意点として、macports / homebrewとpipは、それぞれがインストールされているかどうかを認識しません。

たとえば、MacにPython 3.6をインストールするとします。あなたは欲しいnltkMacPortsの上でそのバージョンの技術的に利用できない、が、それはピップです。したがって、pipにインストールします。2か月後、Macportsにインストールされていることがわかり、インストールを選択します。これnltkで、マシン上にの2つの異なるバージョンがあるため、注意が必要です。

ゴッチャ

Macportsでpipを使用する場合は、Macportsを介してインストールされ、そのpythonバージョンに関連付けられているのが、pipであることを確認する必要があります。したがって、たとえば、py35-pip、py36-pipなどが表示されます。

適切なpipをインストールしたら、Macportsのselectコマンドを使用して、適切なバージョンのpythonでアクティブ化されていることを確認します。

sudo port select

私の経験では、MacPortsによって作成されたPythonグローバルエリアにモジュールをインストールすると、競合が発生します。遅かれ早かれ、MacPortsは既にpipでインストールしたポートをインストールしようとします。そのポートに存在するファイルがMacPortsによってインストールされていないというエラーメッセージが表示されます。@IanCの答えはより良いと思います:MacPortsのみを使用してグローバルPython領域にインストールし、pipのみを使用して仮想環境内にインストールします。
Jim DeLaHunt

4

pipこれは、パッケージのインストールを管理するためのPythonネイティブツールであるため使用する必要がありますが、ベースのPythonインストールにpipインストールしないでください。マシンのベースPythonインストールにすべてをpipインストールする場合、複数のソフトウェアリポジトリ間の固定バージョンの依存関係を整理するのは面倒です。

代わりに、virtualenvをpip-installし、それを使用して、仮想環境ごとに異なる仮想Pythonインストールおよび関連するすべてのpip-installedパッケージパッケージを管理する必要があります。

これにより、たとえば、beautifulsoupあるソフトウェアリポジトリの1.xでの作業からbeautifulsoup別のリポジトリの2.x への切り替えを、依存関係管理の地獄をすり抜けることなく切り替えることができます。


0

私はHomebrewMacPorts、およびpip3を使用して同じパッケージを検索する簡単なテストを実行しました:

brew search numpy
sudo port search --name --glob '*numpy'
pip3 search numpy

MacPorts pip3は同じパッケージ(バージョン 1.18.1でしたが、 Homebrewはバージョン 1.16でした。

他のユーザーと共同作業するときは、開発環境の構成方法について同意するのが最善です。そうしないと、異常にぶつかり、さまざまなテスト結果が得られます。したがって、最良のツールはあなたが全員同意するものです ;-)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.