現在、私の Mac には複数のバージョンの Python がインストールされています。付属のバージョン、python.org から最近ダウンロードしたバージョン、Zope をローカルで実行するために使用される古いバージョン、および Appengine が使用している別のバージョンです。それはちょっと混乱です。1 つのバージョンの Python を使用してすべてを支配することに関する推奨事項はありますか? 古いバージョンを削除し、すべてのアプリを 1 つのインストールにリンクするにはどうすればよいでしょうか。知っておくべき Mac 固有の落とし穴はありますか? これはばかげた考えですか?
4 に答える
複数のバージョンの Python を使用することは、本質的に何の問題もありません。バージョンの依存関係を持つアプリケーションを使用する場合、必要になることがあります。おそらく最大の問題は、アプリごとに異なる可能性があるサイト パッケージの依存関係を処理することです。のようなツールvirtualenv
が役立ちます。してはいけないことの 1 つは、/System/Library/Frameworks にあり、/usr/bin/python からリンクされている Apple 提供の Python を削除しようとすることです。(ここで複数のバージョンに関する最近の議論に注意してください。)
Ian Bicking のvirtualenvを使用すると、構築するアプリケーションごとに Python を分離することができ、分離された Python 環境にグローバル サイト パッケージを含めるかどうかを決定できます。
Zope で試したことはありませんが、次のようにすればうまくいくと思います。
- Zope の Python を使用して、 --no-site-packages の有無にかかわらず、新しい virtualenv を作成します
- Zope を virtualenv にドロップします
- $VENV/bin/activate で環境をアクティブ化します
- 必要なサイト パッケージをインストールする
- $VENV/bin/python で Python を使用して Zope を実行します。
これは、さまざまなバージョンの Python、Django、およびアドオンを使用して Django プロジェクトを管理するために見事に機能しています。
この記事では、Grok と Virtualenv の詳細について詳しく説明しているようですが、一般論は Zope にも当てはまります。
virtualenvの+1。
異なる Python バージョンが必要ない場合でも、開発の依存関係をシステムの Python から分離しておくことをお勧めします。
使用している OS はわかりませんが、これらの手順は、OSX で実行される Python 開発環境を取得するのに非常に役立ちます。
すべての UNIX ライクなオペレーティング システムで動作する、私が好むアプローチは次のとおりです。
特定の Python バージョンを必要とするアプリケーションごとに、ユーザー アカウントを作成します。各ユーザーにインストールして、対応する python バージョンをユーザー ローカル プレフィックス (~/build/python など) でカウントし、~/build/bin/ をユーザーの PATH 環境変数に追加します。Python アプリケーションを正しいユーザーにインストール/使用します。
このアプローチの利点は、個々の python インストールを完全に分離su
し、適切な python 環境を (適切なユーザーに対して) 比較的便利に選択できることです。また、オペレーティングシステムは変更されません。