OS X Leopard上のPythonの複数のバージョン
-
10-07-2019 - |
質問
現在、MacにインストールされているPythonの複数のバージョン、それに付属するバージョン、python.orgから最近ダウンロードしたバージョン、Zopeをローカルで実行するために使用される古いバージョン、Appengineが使用している別のバージョンがあります。それは一種の混乱です。あるバージョンのpythonを使用してそれらすべてを支配することに関する推奨事項はありますか?古いバージョンを削除して、すべてのアプリを単一のインストールにリンクするにはどうすればよいですか。知っておくべきMac特有の落とし穴はありますか?これは馬鹿げたアイデアですか?
解決
Pythonの複数のバージョンを使用しても本質的に問題はありません。バージョンに依存するアプリケーションを使用する場合に必要な場合があります。おそらく最大の問題は、アプリごとに異なるサイトパッケージの依存関係を処理することです。そこでは virtualenv
のようなツールが役立ちます。 すべきではないすべきことの1つは、/ System / Library / FrameworksにあるApple提供のPythonを/ usr / bin / 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にも当てはまるはずです。
+1。
異なるバージョンのPythonを必要としない場合でも、開発の依存関係をシステムのPythonから分離したままにしておくことをお勧めします。
使用しているOSがわかりませんが、これらは、OSXでPython開発環境を実行するのに非常に役立ちます。
私が好むアプローチは、すべてのUNIXライクなオペレーティングシステムで動作するはずです:
特定のpythonバージョンとユーザーアカウントを必要とするアプリケーションごとに作成します。各ユーザーにインストールすると、対応するpythonバージョンがユーザーローカルプレフィックス(〜/ build / pythonなど)でカウントされ、ユーザーのPATH環境変数に〜/ build / bin /が追加されます。正しいユーザーでpythonアプリケーションをインストール/使用します。
このアプローチの利点は、個々のpythonインストールを完全に分離し、適切なpython環境を比較的便利に選択できることです(適切なユーザーに su
するだけです)。また、オペレーティングシステムは変更されません。