32

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 では問題なく並列に動作しました。

4

3 に答える 3

29

これは、Windows 7 64ビットで機能しているようです。1 つのバージョンをデフォルトのインストール (64 ビットなど) として選択し、最初にインストールします。他のことをする前に、他のバージョンをインストールしてください。

別のインストール ディレクトリを指定し、Customize Python 2.7.3画面で選択Register Extensionsして を選択しますEntire feature will be unavailable

于 2012-09-16T16:02:32.700 に答える
3

通常、複数の Python バージョンを並べてインストールできます。Windows にインストールする場合、ファイルのインストールとは別に、レジストリも更新されるため、後続のパッケージ/ツールのインストールでは、現在の m/c のすべての Python インストールを列挙できます。 インストールが同じバージョンでビット数が異なる場合にのみ問題が発生します。レジストリ パスSOFTWARE\Python\Pythoncore\ はビット数とバグ修正で区別されないため、異なるバグ修正または異なるビット数で同じバージョンをインストールしている場合、 InstallPathPythonPathをオーバーレイすることになります。

解決

  • 異なるビット数用に 2 つの異なるバージョンをインストールします。
  • ビット数を切り替えるたびにレジストリ キーを更新するスクリプトを準備します。私はたまたま、ジョブを実行するeffbotの単純な同様のスクリプトに出くわしました。

アップデート

Ruediger Jungbeck が 2 つの異なるレジストリ キーを確認できると指摘したので、Vista 後の重要な変更を突然思い出しました。64 ビット システムでは、32 ビットおよび 64 ビット アプリケーションからレジストリ キーにアクセスできるようにするために、Windows は重要なノードでレジストリを分割します。64 ビット アプリケーションの場合はネイティブ レジストリ パスですが、32 ビット アプリケーションの場合は WoW6432Node です。そのため、32 ビット バージョンの Python\Tools\extension を実行すると、Wow6432Node のみが表示されます。64 ビット アプリケーションは、ネイティブ ノードのみを認識します。クロス ビットネス ノードにアクセスするための API がありますが、それはこの質問の範囲外です。要約すると、Windows はノードを分割することで 32 ビットと 64 ビットのアプリケーションをインテリジェントに処理します。これにより、32 ビットの拡張機能が 32 ビットの Python インストールに透過的にアクセスできるようになります。

于 2012-04-17T07:53:21.950 に答える