2012-04-15 3 views
4

pythonコマンドは、通常、異なるオペレーティングシステム間で最新のPython 2.xコンパイラにマップされます。しかし、Python 3.xインタプリタ(インストールされているすべてのバージョンまたは最新バージョン)を呼び出すための標準的な方法はまだありますか?またのローカルインストールを作成するためにvirtualenvのコマンドを呼び出すためのクロスプラットフォームな方法が存在する場合には、ボーナスとしてPython 3.xコマンドを呼び出すクロスプラットフォームの方法

python3 yourscript.py 

:そう1のように、あなたのPython 3.xの互換性のあるスクリプトを実行することができ

... Python 3?

  • Ubuntuはのpython3コマンドを提供しているようだ、のpython-3.2を好むパッケージ化された

  • OSX(MacPortsの、BSD?)としてPython 3.xのvirtualenvのを提供していないようだ、のpython-3.1のコマンド、提供virtualenvの-3.2、virtualenvの-3.1

は現在、私は

+0

Ubuntuでは、virtualenvを作るために 'virtualenv -p python3 mypy3venv'を行うことができます。 '-p'オプションはどのプラットフォームでも動作するはずですが、Python 3実行可能ファイルの名前に依存していると思います。 –

+0

Windowsでは、 'python'はPythonの* all *バージョンのデフォルト名です。 – delnan

+0

@ThomasK残念ながら少なくともUbuntu 10.04では動作しません[〜]#uname -a Linux Ubuntu-1004-lucid-64-minimal 2.6。32-39-server#86-Ubuntu SMP [〜]#virtualenv -p python3 mypy3venv インタプリタ/ usr/bin/python3でvirtualenvを実行 ファイル "/usr/lib/pymodules/python2.6/virtualenv.py"行16 ImportError、e: ^ SyntaxError:無効な構文 –

答えて

1

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

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

は、その後、あなたはそれをインストールするか、あなただけでは、すべてのときに、ユーザーが呼び出すの実行に失敗することを決定するかもしれないのpython3インタプリタなどを使用してスクリプトを起動するかをユーザーに尋ねることができますPython2であなたのスクリプト。スクリプトにPython3が必要であることをユーザーに知らせるために、多くの方法(FAQ、システム要件など)があり、コードでしようとするのではなく、その問題に対処できるようにします。

これはMicrosoftの.Netランタイムで行われています。ユーザーが必要なバージョンの.Netを持っていない場合、プログラムは続行する前にインストールするようにユーザーに求め、URLにポイントします。 (それがインストールされている場合)

もう一つの提案は、Linuxシステム上で、あなたのスクリプトの先頭にこれを追加することでのpython3を好むことができます。もちろん

#!/usr/local/bin/python3 

を、あなたは確かに知っておく必要があるだろうそのパスが存在します。より柔軟な方法でこれを行うには、envを使用することもできます。

関連する問題