3

OSX (Snow Leopard) での Python 開発を学んでいる場合、Python パッケージをどのように管理すればよいですか?

たくさんのすばらしい python パッケージが世の中に出回っていることに、私はとても興奮しています。私はそれらを学び始めたいと思っていますが、パッケージ管理は私を完全に混乱させました. 明らかに、私は自分が何をしているのかわかりません。パッケージ管理に関するスタック オーバーフローに関する質問をよく見かけますが、「 xだけを使用しないのはなぜですか? シェルからコピーしたこの 1 行だけでこんなに簡単にできるなんて」と答える人がよくいます。

$ x install something

xが特定の依存関係の処理に失敗するか、パッケージyを処理できないまで、これは素晴らしい答えです。これが私がすでに試みたことです:

  1. easy_installを使用してインストールを開始しました。
  2. いくつかの重要なパッケージに依存関係 (PIL) が欠落していることがすぐにわかったので、探し回ってMacPortsを発見しました。
  3. PATHMacPorts を使い始めたところ、すべての環境変数が非常に混乱したため、bash を再構成して機能させる (そしてターミナル ウィンドウを見栄えよくする) のにPYTHONPATH十分な量の bash を学びました。sys.pathMacPorts はしばらくの間、素晴らしいものに見えました。
  4. しかし、その後、使用しているさまざまなモジュールのバージョンについて混乱し、依存関係の問題 (GDAL) がさらに見つかりました...
  5. その後、何人かの非常に知的な人々が、私がHomebrewに切り替えることを強く勧めました。そこで、MacPorts をアンインストールし、Homebrew をインストールしました。
  6. Homebrew を入手したので、使用したいほとんどの python パッケージのFormulaを作成する方法がわからないため、何もインストールできないようです。パッケージがpypiにリストされている場合、実際に Homebrew を使用する必要があるのか​​ 、それとも easy_install を構成して Homebrew ディレクトリにインストールする方法を理解するだけなのかわかりません。そして、不足している依存関係にどのようにアプローチするのが最善なのか、まだわかりません。Python 関連のフォーミュラの秘密のリポジトリがあるのではないでしょうか? またはポートファイルをフォーミュラに変換する簡単な方法はありますか?

正しい答えは、インストールしようとしているものに依存する可能性があることを知っています。次のことを可能にする一連のパッケージをインストールしようとしています。

  1. Pythonですべてを試して自動化する
    • アプリスクリプト
    • ピル
    • パイゲーム
  2. Python で GIS 関連の作業を行う
    • グダル
    • 格好良く
    • ポストギス
    • スパイ
  3. ウェブアプリの素晴らしい可能性を探る
    • ジャンゴ
    • グーグルアプリエンジン

私はマシンからすべてを一掃するつもりです. virtualenvを学習する必要がある場合、または依存関係をチェックして自分でインストールする基本的なプロセスについてさらに学習する必要がある場合は、喜んでそれを行います。Homebrew を掘り下げる必要がある場合は、それも喜んで行います。これらの問題は、本当にやりたいこと (Python できちんとしたものを作成すること) を妨げていることがよくありますが、どうすればよいでしょうか?

4

3 に答える 3

6

私は次のことを強く提案します。基本的なパッケージ管理に使用します。

役立つチュートリアル / ブログ:

于 2011-01-29T08:36:38.973 に答える
3

私の意見では、Python パッケージを処理する最善の方法は、必要なバージョンごとに 1 つずつ、システム Python とは別に一連の Python インストールを用意することです。 このようにして、メインの python を古いバージョンのパッケージで汚染することはありません。プロジェクトに問題が発生することなく、それらを削除して再インストールできます。

詳細:

OS X では、Macports バージョンを使用しても問題ありません。私はそれを使用したことはありませんが、同じことが自作にもおそらく当てはまります。(Linux では、Python をソースから /opt/pythonxx/ にインストールします。たとえば、/opt/python25/、/opt/python26/、/opt/python27、/opt/python31 です。)

次に、すべての Python にインストールする、 、および を除いて、これらの Python にパッケージをインストールすることはありません。プロジェクトのパッケージをインストールしたいときは、そのプロジェクトに使用する python バージョンでそのプロジェクトの virtualenv を作成します。virtualenvdistributepip

$ cd /home/projects
$ /opt/python27/bin/virtualenv acoolproject
$ cd acoolproject
$ ./bin/pip install ThepackageIneed.

各プロジェクトの依存関係を個別にインストールすると、依存関係の問題、バージョンの競合、およびバージョンの混乱を回避できます。

virtualenv を使用して環境を有効または無効にすることができます。

$ ./bin/python main.py

また

$ /home7projects/acoolproject/bin/python

Plone、nginx、varnish など、pip だけではインストールできないものが必要な場合は、zc.buildout を使用して複製可能な環境構成を作成します。zc.buildout も分離して実行されるため、パッケージはインストールされません。メインのパイソン。

于 2011-01-29T10:21:58.857 に答える
0

Homebrew を使用している場合は、pipPython パッケージのインストールに使用することをお勧めします。pipHomebrew 経由でインストールできますが、Homebrew には他の Python パッケージの式が含まれていません。しかし、pip を使用してパッケージをインストールするのは非常に簡単です。

$ pip install <package>

(パッケージ名は PyPI で見つけることができます。) Homebrew 経由で pip をインストールした場合は、それだけで十分です。

于 2011-02-01T05:39:15.027 に答える