Python2.7と3.Xの切替 |
Pythonのインタープリタはバージョン2.7と3.Xの2種類があります。2019/5/18時点で3.73です。 バージョン2.7で書いたコードを3.Xで実行するとエラーが出て停止!というのがあります。例えば有名なのが、 print "hello" 2.7はOK。3.Xはエラーになる。 普通にC言語をやった人からみれば括弧のないprintは間違いじゃないの。3.Xでやっと改められたのかな?と思ってしまいます。2.7で大規模なソフトを書いているならこのままでOKというのもありです。Raspberryに実装されているソフト Python3(IDLE) Thonny Python IDE 2つともバージョン3.5.3です。 AI関係は2.7が多いらしい。TWE-Liteという無線機能のついたMCUもパソコン側のソフトはPython2.7でサポートされている。ということで2.7と新しい3.Xの両方が使う必要がありそうです。 まず開発ソフトはVisual Studio Codeで決定です。一番の決め手はインタプリタ―を選択できます。 次に出来上がったコードをVisual Studio Codeから走らせるのは非効率であり現実的ではありません。なぜなら開発マシン以外で走らせる場合もあります。そのマシンにVisual Studio Codeをインストールすることになり超ーーーーー面倒です。 ターミナルモードで、 python abc.py とすればいいのですが、Raspberry PiのPythonは2.7.13です。3.Xで動作させたいときは、なにかやって3.Xの環境にする必要があります。 python -V Python 2.7.13 この環境から、何かの操作をすると python -V Python 3.5.3 となればやりたいことが実現できたことになります。この何かの操作となる手段として、 ・環境変数を変えてしまう ・仮想環境 があります。 環境変数を変えてしまうのは何かの操作ミスで自分でもわけのわからない状態に陥ってしまうリスクがあるので却下。仮想環境というのはネットを見ても本質を簡潔に記述しているページがないので肝がわかるのにだいぶ時間がかかりました。結局、すごく簡単です。 まず、何かの操作をするためのディレクトリを作成 mkdir py3X そのディレクトリに移動 cd py3X 仮想環境のインストール python3 -m venv venv ディレクトリ env に以下のディレクトリが展開されています。 binのディレクトリをみると、 Python3.5を想像させるようなファイルがあります。activateを実行すると、 バージョンが変わっているのがわかります。 Windowsでも同様にできます。 Python2.7.16と3.73がインストールしてあります。 また、環境変数で3.73でパスが通るように設定しています。 C:\Users\userY>py -m pip install virtualenv ・・・・・・・・・・・・ C:\Users\userY>py -m virtualenv py3env これでpy3envに仮想環境に移行できる仕組みができました。操作は、 C:\Users\py3env\Scripts\activate.bat (py3env) C:\Users\sunaga (py3env)と表示されています。 deavtivateで戻ります。 次にpython2.7に仮想環境に移行できる仕組みをつくります。 C:\Users\userY>py -2 -m pip install virtualenv C:\Users\userY>py -2 -m virtualenv py27env これでpy27envに仮想環境に移行できる仕組みができました。操作は C:\Users\py27env\Scripts\activate.bat です。 仮想環境をいうとなんでも対象のように感じたのですが、Pythonだけでの話のようです。やっている途中でこんなことしなくても2台パソコンがあれば、それぞれに異なるバージョンをいれて使い分ければちょこざいな細工をしなくてもいい。と思いました。実際パソコンは4台あります。しかし、AIなどで実行速度の速いパソコンを何台も用意できないので、これは必要か?と思い直しています。 |