web-dev-qa-db-ja.com

Macにpythonモジュールをインストールする最も互換性のある方法は何ですか?

私はpythonを学び始め、それを愛しています。私は主にLinuxと同様にMacで働いています。 apt-getを使用してpythonモジュールをインストールすると、Linux(Ubuntu 9.04がほとんど)で正常に動作することがわかりました。問題なくインポートできます。

Macでは、Macportsを使用してすべてのUnixyのものをインストールすることに慣れています。ただし、インストールするpythonモジュールのほとんどはpythonで表示されないことがわかりました。私はPATH設定を試し、python_selectを使用して時間を費やしました。何も実際に機能しておらず、この時点で私は本当に理解していないので、代わりに私はただ突っついています。

Macportsはpythonモジュールの管理に普遍的に愛されていないという印象を受けます。私は、より「受け入れられた」(もしそれが正しい言葉なら)アプローチを使って新たに始めたいと思います。

だから、Mac python開発者がモジュールを管理するために使用する方法は何ですか?

ボーナスの質問:

Appleのpythonまたは他のバージョンを使用していますか?ソースからすべてをコンパイルしますか、それともうまく機能するパッケージマネージャーがありますか(Fink?)。

124
GloryFish

pythonパッケージを管理する最も一般的な方法は(システムパッケージマネージャーを使用していない場合)、setuptoolsとeasy_installを使用することです。おそらく既にシステムにインストールされています。次のように使用します。

easy_install Django

easy_installはpython開発者にとって素晴らしいリソースである Python Package Index を使用します。どのパッケージが利用可能かを見て回ってください。

より良いオプションは pip です。これは、easy_installに関連付けられている 多くの問題を修正する を試みるため、注目を集めています。 Pipは、easy_installと同じパッケージリポジトリを使用します。本当にeasy_installを使用する必要があるのは、このコマンドだけです:

easy_install pip

その後、次を使用します。

pip install Django

ある時点で、おそらく virtualenv について少し学びたいと思うでしょう。競合するパッケージ要件を持つプロジェクトで多くのpython開発を行う場合、virtualenvは天の恵みです。さまざまなパッケージの完全に異なるバージョンを使用し、ニーズに応じて簡単に切り替えることができます。

どのpythonを使用するかについては、Appleのpythonに固執することで頭痛の種は最小限に抑えられますが、新しいバージョンが必要な場合(Leopardは2.5.1だと思います)、私は macports python 2.6。

143
sixthgear

あなたの質問はすでに3年前のものであり、他の回答ではカバーされていない詳細がいくつかあります。

私が知っているほとんどの人は HomeBrew または MacPorts を使用します。デフォルトのMac OS X環境と開発セットアップがきれいにカットされているため、MacPortsが好きです。 / optフォルダーを移動し、通常のユーザーPython環境でパッケージをテストするだけです

MacPortsはMac内でのみ移植可能ですが、easy_installまたはpipを使用して、任意のプラットフォーム(Win/Mac/Linux/Bsd ...)で環境をセットアップする方法を学習します。さらに、常に最新であり、より多くのパッケージがあります

私は個人的にMacPortsにPythonモジュールを処理させ、すべてを最新の状態に保ちました。他の高レベルパッケージマネージャー(例:apt-get)と同様に、多くのバイナリ依存関係を持つモジュールを大量に持ち上げる方がはるかに優れています。 easy_installまたはpipでQtバインディング(PySide)を構築する方法はありません。 Qtは巨大であり、コンパイルに多くの時間がかかります。非Pythonプログラムが使用するライブラリを必要とするPythonパッケージが必要になり次第、easy_installまたはpipを避けてください。

ある時点で、MacPortsに不足しているパッケージがあることがわかります。 MacPortsが CheeseShop 全体を提供するとは思わない。たとえば、最近 Elixir モジュールが必要になりましたが、MacPortsはpy25-elixirとpy26-elixirのみを提供し、py27バージョンは提供していません。これらのような場合には次のものがあります。

pip-2.7 install --user elixir

(必ずpip version)と入力してください)

これにより、追加のPythonライブラリがホームディレクトリに作成されます。はい、Pythonは複数のライブラリの場所で動作します。MacPortsによって制御される場所と、MacPortsにないすべての場所のユーザーローカルな場所です。

ここで、easy_installよりもpipを優先することに注意してください。 setuptoolsとeasy_installを避けるべき正当な理由があります。ここに---(良い説明 があり、私はそれらを避けようとします。 pipの非常に便利な機能の1つは、MacPorts、easy_install、pip自体でインストールしたすべてのモジュール(およびそのバージョン)のリストを提供することです。

pip-2.7フリーズ

Easy_installの使用を既に開始している場合、心配しないでください。pipはeasy_installによって既に行われたすべてを認識し、インストールされているパッケージをアップグレードすることさえできます。

開発者である場合は、モジュールバージョンの異なるセットアップと組み合わせを制御するために virtualenv に注意してください。他の答えはすでに言及していますが、これまで言及されていないのは Tox モジュール、パッケージが異なるPythonバージョンで正しくインストールされることをテストするツールです。

通常、バージョンの競合はありませんが、virtualenvを使用してクリーンな環境をセットアップし、パッケージの依存関係を明確に把握したいと思っています。そうすれば、setup.pyの依存関係を決して忘れません

MacPortsに行く場合、同じパッケージの複数のバージョンが、余分なpython_selectパッケージを持つ古いDebianスタイルのように選択されなくなっていることに注意してください(互換性のためにまだあります)。使用するPythonバージョンを選択するselectコマンドがあります(インストール済みのAppleを選択することもできます)。

$  port select python
Available versions for python:
    none
    python25-Apple
    python26-Apple
    python27 (active)
    python27-Apple
    python32

$ port select python python32

その上にtoxを追加すると、プログラムは本当に移植性が高くなります。

42
SystematicFrank

Python OS X開発環境 をご覧ください。最良の方法は、 MacPorts を使用することです。 MacPortsをダウンロードしてインストールし、ターミナルで次のコマンドを入力してMacPorts経由でPythonをインストールします。

 sudo port install python26 python_select 
 sudo port select --set python python26 

OR

 sudo port install python30 python_select 
 sudo port select --set python python30 

最初のコマンドセットを使用してPython 2.6をインストールし、2番目のセットを使用してPython 3.0をインストールします。次に使用します:

 sudo port install py26-packagename 

OR

 sudo port install py30-packagename 

上記のコマンドで、置き換えます パッケージ名 パッケージ名を使用して、例えば:

 sudo port install py26-setuptools 

これらのコマンドは、指定されたPythonバージョンのパッケージ(およびその依存関係)を自動的にインストールします。

Pythonで利用可能なパッケージの完全なリストについては、次を入力してください。

ポートリスト| grep py26-

OR

ポートリスト| grep py30-

使用するコマンドは、インストールすることを選択したPythonのバージョンによって異なります。

30

MacPortsを使用してPythonおよびMacPortsによって追跡されるサードパーティモジュールを/opt/localにインストールし、手動でインストールしたモジュール(MacPortsリポジトリにないもの)を/usr/localにインストールします。そして、これは問題を引き起こしたことはありません。特定のMacPortsスクリプトと環境変数の使用に関して混乱していると思います。

MacPorts python_selectは、Pythonの「現在の」バージョンを選択するために使用されますが、モジュールとは関係ありません。これにより、たとえば、MacPortsを使用してPython 2.5とPython 2.6の両方をインストールし、インストールを切り替えることができます。

$PATH環境変数はnotがPythonモジュールのロード対象に影響します。 $PYTHONPATHはあなたが探しているものです。 $PYTHONPATHは、ロードするPythonモジュールを含むディレクトリを指す必要があります。私の場合、$PYTHONPATH変数には/usr/local/lib/python26/site-packagesが含まれています。 MacPortsのPythonを使用する場合、他の適切なディレクトリが設定されるため、追加パスを$PYTHONPATHに追加するだけです。ただし、Pythonがインストール済みのモジュールを検索する場合、$PATHはまったく使用されません。

$PATHisは実行可能ファイルの検索に使用されるため、MacPortsのPythonをインストールする場合は、/opt/local/bin$PATHにあることを確認してください。

7
mipadi

MacPortsのPythonを使用する場合、/ opt/local/bin/easy_install-2.6(py26の場合)にある独自のeasy_installがあります。デフォルトのpythonコマンドを変更するためにpython_selectを使用した場合でも、単にeasy_installを直接呼び出すのとは異なります。

6
Tudor

MacPorts Pythonインストールを使用しても何も問題はありません。 MacPortsからpythonモジュールをインストールしても表示されない場合は、インストール先のMacPorts pythonを呼び出していない可能性があります。ターミナルシェルでは、インストールされている可能性のあるさまざまなPythonを呼び出すために絶対パスを使用できます。例えば:

$ /usr/bin/python2.5         # Apple-supplied 2.5 (Leopard)
$ /opt/local/bin/python2.5   # MacPorts 2.5
$ /opt/local/bin/python2.6   # MacPorts 2.6
$ /usr/local/bin/python2.6   # python.org (MacPython) 2.6
$ /usr/local/bin/python3.1   # python.org (MacPython) 3.1

正しいpythonを取得するには、デフォルトで適切な実行可能ファイルが最初に見つかるようにシェルの$ PATHを適切に設定する必要があります。別の解決策は、さまざまなpythonのシェルエイリアスを定義することです。

他の人が示唆しているように、python.org(MacPython)のインストールも問題ありません。 easy_installは役立ちますが、各Pythonインスタンスには独自のeasy_installコマンドがあるため、正しいeasy_installを呼び出していることを確認してください。

6
Ned Deily

easy_install を調べましたか?それはあなたのmacportsまたはそのようなものを同期しませんが、自動的に最新のパッケージとすべての必要な依存関係をダウンロードします。

easy_install nose

ノーズユニットテストパッケージ用、または

easy_install trac

tracバグトラッカー用。

EasyInstall ページにももう少し情報があります。

4
Mark Rushakoff

MacPythonインストールの場合、このブログ投稿でsetuptools(easy_install)の問題を解決する効果的なソリューションを見つけました。

http://droidism.com/getting-running-with-Django-and-macpython-26-on-leopard

便利なヒントの1つは、ターミナルでpythonのどのバージョンがアクティブになっているかを調べることです。

which python
3
Edmundito

MacPortsでモジュールをインストールすると、AppleのバージョンのPythonには入りません。代わりに、これらのモジュールは選択されたPythonのMacPortsバージョンにインストールされます。

python_select というMacポートを使用して、デフォルトで使用されるPythonのバージョンを変更できます。指示 ここ

また、 easy_install があります。 pythonを使用してpythonモジュールをインストールします。

2
Jon W

pip3が既にインストールされている場合がありますので、試してみてください!

2
Shayan Amani

使用するpythonバージョンに関して、Mac OSは通常、古いバージョンのpythonを出荷します。新しいバージョンにアップグレードすることをお勧めします。 .dmgは http://www.python.org/download/ からダウンロードできます。その場合は、パスを更新することを忘れないでください。正確なコマンドはこちらにあります http://farmdev.com/thoughts/66/python-3-0-on-mac-os-x-alongside-2-6-2-5-etc-/

1
Mario F