2016-08-16 9 views
0

私は自宅の仕事用コンピュータと仕事用のコンピュータの両方から、そのコンピュータのRDPに同じ非常に小さなpythonスクリプトを実行しています。サーバーは会社標準のPython 2を使用しています。私は自宅でPython 3を使用しています。最近、同じスクリプトを使用して、両方で同じ仕事をすることに決めました。すべてが同じであり、その1が望ん以外作品:python tkinter import portability

from Tkinter import * 

を、他方は単一の文字ケースの変更を望んでいる:

from tkinter import * 

は、どのように私は別のpythonに取り組んで同じスクリプトのように、これはポータブル作るのですか環境ですか?私は目を離しておくのを忘れないで2つのスクリプトを持っていたいとは思わない。 可能ですか?

+3

:-)それらの両方をインポートしてみてください(sys.versionを使って)Pythonのバージョンをテストすることができます – Frodon

答えて

1

Pythonのバージョンを確認し、場合に応じて治療:

import sys 

if sys.version_info[0] > 2: 
    from tkinter import * 
else: 
    from Tkinter import * 
1

2to3プログラムはトリックがあなたのPython 2 が正常に取得(かつ正確に)ないようにコードを書くことであるPythonの3にあなたのプログラムの翻訳を(いくつかを、常にではない完璧な)実行されますが変換しました。

python-modernizeをご覧になることをお勧めします。互換性のあるソースを維持するのに役立ちます。

0

またはインポートラインは `ImportError`以外/試す内とすることができる

try: 
    from tkinter import * 
except ImportError: 
    from Tkinter import * 
+0

これがOPの問題をどのように解決するかについて詳しく説明できますか? – brandonscript

+0

シンプル。試してみませんでしたが、Alivaの例はどちらの環境でも動作するはずです。 –