Contents
Python には 2.x 系と 3.x 系のバージョンがあり、Pythonista3 は 2.7.12 と 3.6.1 をベースに作られている
ということを知っておきましょう。Pythonista3 では、どちらのバージョンの環境でコードを実行するか選ぶことができます (下図。スクリプト名の右にある ▷ を長押し)。通常はデフォルトのバージョン 3で問題ないはずですが、2系で書かれたコードを実行する際には print 文やモジュールのインポートでエラーが出る可能性が高いです。そういう場合には 2.7 でコードを実行しましょう (Run with Python 2.7)。
StaSh 上の一部コマンドは Python 2 用に書かれている
Pythonista 3 に Django や py-tree といった Python のパッケージをインストールするのに本サイトでも便利に使用させてもらっている StaSh ですが、一部コマンドは Python 2 用に書かれているもののようです。なので、StaSh インストール後に普通に起動すると、デフォルトの Python 3.6 で実行されるので、警告が表示されます。
StaSh v0.7.2 on python 3.6.1 Warning: you are running StaSh in python3. Some commands may not work correctly in python3. Please help us improving StaSh by reporting bugs on github.
Python 3 ではうまく動作しないコマンドや、Python 2 のパッケージをインストールしたり実行するには、Python 2.7 で実行する必要があります (▷アイコン長押し、Run with Python 2.7)。そうすれば上記の警告は出ません。
StaSh v0.7.2 on python 2.7.12
というわけで、Python 2.x 用に書かれたパッケージを pip でインストールしたい場合は、そもそも実行する StaSh を Python 2 で実行しなければなりません。毎回 ▷アイコンを長押しする?ちょっとスマートじゃないですね。
コードを実行するPython のバージョン (3 or 2) を指定する
コードを作成する際、実行する Python のバージョンを指定することができます。方法は簡単で、Python 2 で実行したい場合は以下のようにコードの最初の行にバージョンを明記してあげるだけです (コードを実行する言語を指定するこの方法を Shebang と言います)。パスがない分、Linux や macOS よりも簡単です。
#! python2
# coding: utf-8
# この下にコードを書いていく
StaSh の場合、Python 3 で実行したいとき (Django のインストールなど) と Python 2 で実行したい時 (StaSh 内のコマンドが Python 3 だとエラーを吐くなど) のケースがあるため、先頭の Shebang を変更した stash2.py と stash3.py の 2つのコードを書き、それぞれショートカットとして登録しておくと便利です。