2017-01-23 6 views
0

python 3.xコードを持ち、2.xコード(関数呼び出しなど)を実行することはできますか?python 2.xでコードの一部を実行することは可能ですが、残りはpython 3.xで書かれていますか?

#Code written in python 3.x 
. 
. 
. 
. 
. 
. 


#This is the python 2.x part with Function2x() written in python 2.x 
Function2x() 
#End of python 2.x part 


#Code written in python 3.x 
. 
. 
. 
. 
. 
. 

これは悪い習慣と考えられますか?もしそうなら、3.xから2.xへのコードを移植することがオプションではない場合、どのようにしてこの問題を回避できますか?

+0

urスクリプトを2から3に変換するのに役立つかもしれません。https://docs.python.org/3.0/library/2to3.html – SmartManoj

答えて

2

一般的にはおそらく不可能です。少なくとも簡単な方法はありません。

しかし、解決しようとしている問題に応じていくつかの回避策があります。例えばpython2インタプリタと互換性がなく、python2でそれを実行する必要があるpython3コードがある場合は、futureモジュールを使用してみてください。

python3に変換するpython2コードをお持ちの場合は、@ smart-manojに記載されている2to3ユーティリティを使用できます。

また、単一の結果を返す単純なpython3メソッドがある場合は、subprocess.callメソッドを使用してpython2から外部python3プロセスを呼び出すことを検討することもできます。これはもちろん、python3からpython2インタープリターを呼び出すこともできます。しかし、あなたはすぐにその解決策にいくつかの問題があるので、私はこれをお勧めしません。

関連する問題