Windows Vista 64 を使用しています。
Python 2.7.3 64 ビットを必要とするプロジェクトと、Python 2.7.3 32 ビットを必要とするプロジェクトがあります (一部の拡張機能は 64 ビットでは機能しないため)。
Python 2.7.3 MSI インストーラー (32 または 64 ボット) が他のバージョンを削除しないようにするにはどうすればよいですか。
Python 2.7.2 では問題なく並列に動作しました。
これは、Windows 7 64ビットで機能しているようです。1 つのバージョンをデフォルトのインストール (64 ビットなど) として選択し、最初にインストールします。他のことをする前に、他のバージョンをインストールしてください。
別のインストール ディレクトリを指定し、Customize Python 2.7.3
画面で選択Register Extensions
して を選択しますEntire feature will be unavailable
。
通常、複数の Python バージョンを並べてインストールできます。Windows にインストールする場合、ファイルのインストールとは別に、レジストリも更新されるため、後続のパッケージ/ツールのインストールでは、現在の m/c のすべての Python インストールを列挙できます。
インストールが同じバージョンでビット数が異なる場合にのみ問題が発生します。レジストリ パスSOFTWARE\Python\Pythoncore\ はビット数とバグ修正で区別されないため、異なるバグ修正または異なるビット数で同じバージョンをインストールしている場合、 InstallPathとPythonPathをオーバーレイすることになります。
解決
アップデート
Ruediger Jungbeck が 2 つの異なるレジストリ キーを確認できると指摘したので、Vista 後の重要な変更を突然思い出しました。64 ビット システムでは、32 ビットおよび 64 ビット アプリケーションからレジストリ キーにアクセスできるようにするために、Windows は重要なノードでレジストリを分割します。64 ビット アプリケーションの場合はネイティブ レジストリ パスですが、32 ビット アプリケーションの場合は WoW6432Node です。そのため、32 ビット バージョンの Python\Tools\extension を実行すると、Wow6432Node のみが表示されます。64 ビット アプリケーションは、ネイティブ ノードのみを認識します。クロス ビットネス ノードにアクセスするための API がありますが、それはこの質問の範囲外です。要約すると、Windows はノードを分割することで 32 ビットと 64 ビットのアプリケーションをインテリジェントに処理します。これにより、32 ビットの拡張機能が 32 ビットの Python インストールに透過的にアクセスできるようになります。