2017-12-10 6 views
-2

インターネット上で、書かれた文脈(shebang)を必ずしも指定する必要はなく、文字列の.format()メソッドとして明白なものを必ずしも使用しない、インターネット上の小さなプログラムやサンプルコードが多数見つかります。コードの一部がどのPythonのバージョンでチェックされていますか?

Pythonのいくつかのバージョンでクラッシュする可能性がありますが、これは基本的な非互換性のためではなく、見つからない可能性のあるライブラリの欠落によるものです。

質問:「コードがいずれのバージョンのPythonとも互換性があるかどうかを判断する最も良い基準は何ですか?」

編集:他の質問を作成した人に感謝したい。私が投稿する前に見つからなかったが、これは実際には重複していない。なぜならツールを探しているわけではないからだ。 (私を逃れた事実のように、その印刷物はバージョン2のステートメントであり、バージョン3のファンクションである)。

多くのサンプルコードにはシバンが含まれていないため、複数のGUIプログラムでは印刷指示が使用されません。

+0

主観的な種類の種類ですが、おそらく印刷文がどのように書式設定されているかを見ていきます。 – Phil

+0

より一般的なものとバージョン間の違いがあるため、同じプログラムがすべてのPythonバージョンで動作する可能性があります。だからあなたが望むバージョンでプログラムを実行するだけで、あなた自身が答えを得るでしょう。 –

+0

シバンを探してください。またはコメント。またはそれを書いた人。 – khelwood

答えて

1

理想的には、pythonスクリプトには、最初の行に#!/usr/bin pythonのようなシバンが含まれています。また、動作する最小(最大)バージョンを示すコメントもあります。

その他の手がかり:もちろん

print Something # Python 2 Only 
print(Something) # Python 3 Mostly 

from __future__ import print_function # As first active code 

print(Something) # Now works for both 

とよく書かれたコードは、いずれかの多くのバージョンと互換性があるか、具体的には、必要とバージョンをチェックします。

ライブラリが見つからない場合、エラーメッセージは本当にはっきりしますが、ほとんどの場合、Pythonコードは「実行」する傾向があります。実際の解決策は、pythonのバージョンでコードを試してみることです。ハンド。

+1

私は 'sysをチェックするライブラリもいくつか見てきました。間違ったPythonのバージョンが(通常は '__init __。py'の中で)使われたときに' version_info'を呼び出し、 'RuntimeError'を送出します。 –

+1

良い点@Coal_しかし、それらは質問ごとにオンラインで見つかった小さなユーティリティとコードスニペットではなく、よく書かれたライブラリにある傾向があります。 –

0

あなたは公式ドキュメントから参照できます:Python Docs

私はあなたがコードのその部分を試すことができますのPython 3.xののためのIDEを持っていると仮定しています。
Steveが述べたように、python(x)のprint関数を使って区別することができます。 (上記のような)print文がコードに存在する場合

print "hello world" 

だから、あなたが取得します:

SyntaxError: Missing parentheses in call to 'print'. 

このように、コードのその部分が2.xのパイソンのためでした。

+0

はい、python 2のprint文とpython 3のprint関数の違いは私を逃れました。しかし、それがなぜ「小さなプログラム」や「サンプルコード」を指定したのか、シバンや印刷命令(特にGUIコードの場合)がない場合があります – Camion

+0

print()ステートメントを追加して実行します。ソールド? – BoRRis

+0

あなたは公式文書を読むことができます – BoRRis

関連する問題