4

pythonコマンドは通常、異なるオペレーティング システム間で最新の Python 2.x コンパイラにマップされます。ただし、Python 3.x インタープリター (インストールされている最新バージョン) を呼び出す標準的な方法はまだありますか?

...したがって、Python 3.x 互換のスクリプトを次のように実行できます。

 python3 yourscript.py

おまけとして、virtualenv コマンドを呼び出して Python 3 のローカル インストールを作成するクロスプラットフォームの方法も存在する場合は?

  • Ubuntu は python3 コマンドを提供しているようですが、事前にパッケージ化された Python 3.x の virtualenv を提供していないようです。

  • OSX (Macports、BSD?) は python-3.2、python-3.1 コマンドを好み、virtualenv-3.2、virtualenv-3.1 を提供

現在、私は物事を成し遂げるためにいくつかの試行錯誤のヒューリスティックを持とうとしています

4

2 に答える 2

1

これに対する完全な解決策はありません。Python3 がクライアントにインストールされていない可能性があります。あなたならどうしますか?スクリプトの実行時に Python のバージョンを確認することから始めることもできます。

print sys.version_info
sys.version_info(major=2, minor=7, micro=2, releaselevel='final', serial=0)

実行中の Python が Python3 でない場合は、ユーザーにそれをインストールするか、Python3 インタープリターを使用してスクリプトを呼び出すように求めることができます。ユーザーが Python2 を使用してスクリプトを呼び出したときに、まったく実行に失敗することを決定する場合があります。スクリプトが Python3 を必要とすることをユーザーに通知し、コードでそうしようとするのではなく、ユーザーにその問題を処理させる方法 (FAQ、システム要件など) はたくさんあります。

これが Microsoft .Net ランタイムで行われるのを見たことがあります。ユーザーが必要なバージョンの .Net を持っていない場合、プログラムは先に進む前にそれをインストールするようユーザーに要求し、URL を示します。

もう 1 つの提案として、Linux システムでは、これをスクリプトの先頭に追加することで、Python3 (インストールされている場合) を優先できます。

#!/usr/local/bin/python3

もちろん、そのパスが存在することを確認する必要があります。envより柔軟な方法でこれを行うこともできます。

于 2012-04-15T14:43:11.593 に答える
1

PEP 394 The "python" Command on Unix-Like SystemsPEP 397 Python launcher for Windowsを読んだ後#! /usr/bin/python3、スクリプトでシバンを使用し、Windows ユーザーにコマンドの代わりにPython ランチャー( command) をインストールして使用するように指示することが最善の方法だと思います。pypython

于 2012-04-15T17:40:43.693 に答える