Pythonのバージョン切り替え方法/Mac・Windows・Linux

出典:pixabay.com

覚える量はとっても少なく、ですが非常に扱いやすいPython。 PythonはVersion2.0から3.0でかなり大きく変更もあり、習得でも実務でも、「複数のPythonのVersionが簡単に切り替えることができる環境」があるほうがやはり便利。 今回は、そんなPython同士の共存環境構築とそして切り替え方法について、

◆【PythonのVersion同居、簡単切り替え環境】MacOS、Linux(CentOS、Ubuntu)などのUnixOS編 ◆【PythonのVersion同居、簡単切り替え環境】Windows編 ◆Mac/WindowsともにAnaconda/Jupitarインストール済みなら、実はもっと「Pythonの環境切り替えが画期的便利に!」 などをはじめ、いろいろな方法をご紹介します。

目次

◆Pythonのバージョンアップには、マイクロバージョンとマイナーバージョン、メジャーバージョンによる違いがある

「Pythonって、俺の起動すると、いつもアップグレード画面開くんだけど、あれなんか問題あるの?」と思われている方。 キャンセルだけで操作しなければ、とくに問題はありません。

実は、3種類のさまざまなバージョンアップが存在し、その関係によって、バージョンアップ推奨画面が開きます。 またこのバージョンアップ3種、変更度合いが小さいほうから  「マイクロバージョンアップ」  「マイナーバージョンアップ」  「メジャーバージョンアップ」 これらの関係性で、このアップグレード画面からのインストール結果が異なることはご存知でしたか?

出典:pixabay.com

・Pythonのメジャーバージョンアップとは?

皆様の記憶からすでに消えかけているかもしれない、Python2→3へのバージョンアップ。 かなり大きな機能や仕様も異なっています。 この頭の数字がかわるのが、メジャーバージョンアップ。 この前後に各社のプロジェクトのために、バージョン混在環境を、少ない資料のなかから自力で構築したことを、いまも「マイ技術神話」として語っている先輩も少なくないかもしれません。

・Pythonのマイナーバージョンアップとは?

たとえば、Python3.5からPython3.6へのバージョンアップなどがマイナーバージョンアップ。 コンマ下、全体では二けた目がかわるバージョンアップのことです。 比較的大きめの機能改善などが行われており、Pythonではだいたい1年半で1回くらいのリリースタイミング。 インストーラーのおすすめ通りにインストールすると、Python直下に、マイナーバージョンごとに2つのPythonがインストールされます。

・Pythonのマイクロバージョンアップとは?

たとえばPython3.6.3からPython3.6.4へのバージョンアップなどは、マイクロバージョンアップと呼ばれ、俗にいう修正リリース、約半年程度で行われています。 インストーラーのおすすめ通りにインストールすると、直前のVersionのPythonが置き換わる「アップグレード状態」となってしまいます。 ◆ここだけは、Pythonのバージョンアップで、非常に気を付けたいところです◆ マイクロバージョン間では、互換性が確保されており、とくに学習用や趣味用というのなら、問題ないのですが、たとえば大型案件やクライアントサポートで特定のPythonだけで発生するようなトラブルなどを見たいというなら、ちょっと問題が。

さらにPython3.3以降にデフォルトでインストールされている「Pythonランチャー」の場合、現在インストールされているPythonの中から、もっとも新しいVersionのPythonを実行してくれます。 このあたりの開発や検証上「実行されるPythonVersion管理については、どうしても譲れない部分がある」のなら、PythonのVersion混在環境構築と切り替えながらの使用がおすすめです。

◆【PythonのVersion同居、簡単切り替え環境】MacOS、Linux(CentOS、Ubuntu)などのUnixOS編

「以前のLinux」そして「Mac」の場合、もともとPythonがインストールされています。 ですが、たとえば、開発やデバッグ用の環境を構築するには、各種の「VMウェア」などを用いた複数の実行環境をマシン内に作るのが一般的。 もともとインストールされているPythonのほか、新しいVersionの環境を追加して、世代間同居させれば、何かと便利です。

いざ必要となった時に、あとから環境構築するとき、たとえば新しいVersionの環境だけが入っていて古いVersionをインストールするときには、まず全部を消して、必要なモジュールを入れて、古いVersionから順にインストールなどと面倒なのもよくある話です。 ここは「最初から」(※あるいは、ひとり連休などの広大なスキマ時間に)こうした環境を備えておくのがよいでしょう。

まずpyenvのインストールですが、ここだけLinux(Ubuntu)の場合とMacの場合で異なります。それ以降はLinuxとMacで共通です。 pyenvは、Ubuntuのaptパッケージとして存在しないので、GitHubからダウンロードします。

さて、このPythonの複数Version同居&切り替えて呼び出せる環境を作るのには、 【1】「pyenvプラグイン」 【2】「pyenvプラグインのvirtualenv」 などを使えば便利!

正直、使い勝手のユーザー評価では、2→1の順です。 他にもありますが、今回はこの一般的でユーザ評価も高い方法を中心にご紹介しましょう。

【1】「pyenvプラグイン」によるPythonのVersion混在&切り替え使用の環境構築方法

1:Gitをとってきてインストール 2:pyanvをインストール の手順です。 今回は、MacOS Sierra(ver10)マシン(画像加工済)ですが、上記に記載した他のOSでも、ほぼ同じ流れです。

 ・MacOSの場合

1:Gitをとってきてpyanvをインストール インストールにはターミナルを使用します。

Gitを直接とってきてインストールするときはこちら

$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv

brewを使ってインストールするときはこちらをそれぞれ使用。

ここで、必要があれば~/bash_profile他のファイルに追加する項目があります。 同じくターミナルから・・・

export PATH=”$PYENV_ROOT/bin:$PATH” export PYENV_ROOT6=”$HOME/.pyenv” eval ”$(pyenv init -)”

そして追加後に、追加分の変数を反映 Source .bash_profile

 ・Linux(ubuntu)の場合

1:Gitをとってきてpyanvをインストール

出典:pixabay.com

流れはほとんどMacと同じですが、コマンドなどが異なっています。

sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev

(ここで処理系ツールや描画系ツールなど、よく使うものを入れることも) git clone git://github.com/yyuu/pyenv.git ~/.pyenv

ここまで終わったら、シェルの種類に合わせてpyenvへのパスを設定します。 シェルの種類の確認は、定番 echo $SHELL zshで使用なら~/.zshrcに Bashなら~/.bashrcや~/.bashrc_profileにパスを設定していきます。

export PYENV_ROOT=”$HOME/.pyenv” export PATH=”$PYENV_ROOT/bin:$PATH” eval ”$(pyenv init -)”

パスを設定した後は、シェル環境にあわせて次の処理を実行。設定を反映させます。 # source ~/.(設定したファイル名) source ~/.zshrc もしくは source ~/.bashrc source ~/.bashrc_profile

2:pyenv Pythonをインストール

【MacOS】

/ インストールできるVersionを確認する $ pyenv install --list / 使いたいPythonの各Versionをインストール $ pyenv install 3.5.0 $ pyenv install 2.7.10

これを反映させた後に、pyenv -v でpyenvのVersion表示ができればパスが通っていることになります。

現在のPythonのVersionを確認する $ python --version

インストールされているPythonのVersion一覧を確認する $ pyenv versions

globalで指定すると、全体に指定したPythonのVersionが /pythonの切り替え $ pyenv global 2.7.10 /確実に切り替わったかどうかのPythonのVer確認 $ python --version や $ pyenv global 3.5.0 $ python --version 展開してあるlocalのDirまで移動してlocalで指定すると、そのディレクトリに指定したPythonのVersionが $ pyenv local 2.7.10 $ python --version や $ pyenv local 3.5.0 $ python --version が、それぞれ適用されて利用できます。

ローカルとグローバルの差は、ローカル(local)の時には、そのDirよりも下にいるときだけ、そのPythonのVersionが使用できるということです。

【ubuntu】

ほぼMacとにていますが、 $ pyenv install --list でインストール可能なpyenvのVersionなどの一覧が。 $ pyenv install 3.6.1 とやればPythonのインストールが。 $ pyenv install anaconda3-4.3.1 とやればanacondaのインストールがそれぞれ行えます。

【pyenvを使った環境設定を削除する方法】

そのDirに移動して pyenv uninstall 3.5.0 と入力すると、作成したpython環境が削除されます。

【2】「pyenvプラグインのvirtualenv」によるPythonのVersion混在&切り替え使用の環境構築方法

さて単なるpyenvだけでなくvirtualenvを導入するメリットとしては・・・ virtualenvなら、同じVersionのPythonで、複数の環境を持つことができます。

出典:pixabay.com

pyenvだけ=例えば、Version3,5.0が1つ、Version2.7が1つ virtualen=例えば、Version3,5.0が3つ、Version2.7が2つ のような使い方ができます。 マシン上で、複数アプリを検証する時、ライブラリの依存関係などを意識しなくても行えるので、非常に便利です。

さて、方法ですが、virtualenvの場合、【1】の方法の上で設定が必要なので Gitを直接とってきてインストールするときはこちら $ git clone git://github.com/yyuu/pyenv.git ~/.pyenv

brewを使ってインストールするときはこちらをそれぞれ使用。 $ brew install pyenv

と、必要があればパスを通すところまでは【1】と共通。

その後、 Gitからインストールするときはこちら $ git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

brewを使ってpyenv-virtualenvをインストールするときはこちら $ brew install pyenv-virtualenv

その後、pyanv virtualenvから、pythonのversionごとに、新たに作る環境に設定すればOKです。

【virtualenvを使った環境設定方法】

たとえば、「mypyenv_3.5.1」という環境をPython3.5.1ベースで作る場合は

pyenv virtualenv 3.5.1 mypyenv_3.5.1 と入力。書式は、[pyenv virtualenv (コピーもとになるPythonのVer)<任意の環境名>]です。 その後、コマンド pyenv versions などで、インストールされたVersionのリストを確認するとよいでしょう。

【pyenv-virtualenvを使った環境設定を削除する方法】

そのDirに移動して pyenv uninstall mypyenv_3.5.1<※mypyenv_3.5.1の部分は自分でつけた任意の環境名> と入力すると、作成したpython環境が削除されます。

◆【PythonのVersion同居、簡単切り替え環境】Windows編

Pyenvが使えないWindows。 プログラミングで使うコマンドプロンプトに慣れているなら、すっきり頭がつねに整理された状態で見られるコマンドプロンプト経由での利用がおすすめ。 たとえば、WindowsのPython3.3からデフォルトでインストールされている「Pythonランチャー(=py.exe)」などが手軽で便利です。

Windowsでは、コマンドプロンプト上でpythonを使うのではなく、Python Launcherを使う方が、実はpipなどでバージョンを混同して間違ったりすることがなく便利。

Windows環境では、Pythonランチャー py.exe がインストールされます。 MacOS や Linux などの Unix系OSでは、python コマンドで Python を実行しますが、Windowsではこの py.exe で実行したほうが便利です。
通常、Python をコマンドラインから実行するときには、Pythonをインストールしたディレクトリを環境変数というシステム設定に記録する必要がありますが、py.exe は、設定をしなくとも実行できます。
Python をコマンドラインから実行するときには、Pythonをインストールしたディレクトリを環境変数というシステム設定に記録する必要がありますが、py.exe は、設定をしなくとも実行できます。

たとえば・・・ C:\Users\user>py で現在インストールされている中で「最後にインストールしたバージョンの Python を実行」 複数VersionのPythonがインストールしてあるマシンで、Version指定をして実行するときは、オプションを追加します。 たとえば・・・ C:\Users\user>py -2 とすれば、Version2.X C:\Users\user>py -3.6 とすればPython 3.6が、それぞれ「そのVersionのPythonがインストールしてあれば」使えます。 設定不要なので便利ですね!

【その他】Python3に含まれている仮想環境管理ツール「venv」によるPythonのVersion混在&切り替え使用の環境構築もある!

あまり積極的に使っている人を見ることはありませんが、Python3に含まれている仮想環境管理ツール「venv」でVersionを混在させて、各Versionごとに隔離して、切り替えしながら使用する方法もあります。

venv は virtualenv が Python 3.3 から標準機能として取り込まれたものである.pip によるパッケージの導入状態をプロジェクトごとに独立させることができる.
pyenv で Python のバージョンの隔離,venv でパッケージの隔離という使い方は可能 venv と同様にパッケージの導入状態を隔離させることが可能なものとして py”v”env があるが,最新情報では pyvenv は非推奨となっている ので,venv を利用するのが良い.
注釈 pyvenv スクリプトは Python 3.6 で非推奨となり、代わりに python3 -m venv を使い、仮想環境を動かす Python インタープリタを取り違える可能性を防ぎやすくします。

ですが、もしかすると、次にご紹介するような他のツールによる方法のほうが便利かもしれません。

◆Mac/WindowsともにAnaconda/Jupitarインストール済みなら、実はもっと「Pythonの環境切り替えが画期的便利に!」

Anaconda (アナコンダ) を利用して Python をインストールした場合、Jupyter Notebook が Python と同時にインストールされています。

Pythonを学習したり業務に使うとき、ついでにAnaconda/Jupitarなどを入れている人は多いと思います。 この、Anacondaを使っただけでも、Mac Windowsとも非常に簡単に、pythonの各環境を作成し、切り替えることができます。

これで新環境が作れる!

Anacondaを起動したら、まずは画面左側のEnvironmentsをクリック。 つづいて開いた画面では、最も下にあるCreateのボタンをクリック。

Pythonでは、このAnaconda(アナコンダ)で環境構築できるのは、2.7、3.5、3.6ということ。 好みのVersionのPythonを選んだら、Name内に任意の名前を入れます。「.」は使えないので要注意!

ウインドウ右下のCreateボタンをクリック。 すると先ほどのウインドウ内に、新たに「NEWPY27」環境が出来上がりました。 NEWPYの画面右「▶」をクリックすると、 メニューがさらに右に画面展開され Open Terminal Open with Pythonが表示されます。 他にOpen with IPythonやOpen with Jupyter Notebookはこの段階ではグレーアウトしていて選べません。

タテ3ブロックに分かれているANACONDA NAVIGATORの画面の一番右、一番上にあるドロップダウンは通常、Installedとなっていますが、ここからまだインストールしていないものをリストアップしてくれる「Not Installed」を選びます。

たとえばjupyterを使いたいなら、この中で関係しそうなもののチェックボックスをチェック。

緑の下向き矢印のチェックをいれたら、画面右下端にカラーのボタンが登場します。 緑のApplyをおしてインストール開始。 その次に、開いたウインドウでも、Applyボタンがでるため、一覧を確認してApplyボタンをクリック。 自動でインストールがされ、完了すると、先ほどの画面の▶を押してひらくメニューから、Open with IPythonやOpen with Jupyter Notebookが使えるようになっています。

これで、たとえばJupyterノートブック経由で新しいプロジェクトを作成しても、PythonのVersionが選べます。 環境がいろいろ使い分けられて便利ですね。

【Windowsで使うAnaconda】~Python複数Version切り替え

さて、ターミナルからなら、

$ conda create -n mypython27 python=2.7 anaconda と入力すると、今インストールしてあるAnaconda3の直下に、/env/mypython27 が作成されます。 よく、案件ごとに環境を作成するので、日付なんかをいれておいて、不要になったら削除するように管理すると便利です。

ここで、Python2.7を使うときには $ activate mypython27 そして元の3.0に戻したいときには、 $ deactivate で手順が非常にシンプル。 いやー便利ですね。

【Macで使うAnaconda】~Python複数Version切り替え

Macの場合、ターミナルを経由してAnacondaからPythonの各Versionを使うときには、Windowsにくらべてちょっとだけ入力量が増えます。ですがそれでも手順はシンプル。 環境はあらかじめ、先ほどの画面サンプルを見ながら構築しておき、

ちょっと入力が長いので、aliasをあらかじめ登録しておいて、「$ alpython35」のように呼び出せると便利ですよね

alias alpython35=’source ~/.pyenv/versions/anaconda3-5.0.1/bin/activate mypython35’ alias alpython355=’source ~/.pyenv/versions/anaconda3-5.0.1/bin/deactivate’

そのフォルダに移動して $ alpython35 もしくは $ alpython355 とターミナルで入力するだけでanacondaからPythonのVersion切り替え(=アクティベートと非アクティブ化)が簡単に行えます。 実質今は、この方法が一番簡単かもしれません。

◆for Mac パッケージマネージャHomebrewをあらかじめ入れておけば、あらゆるインストール管理が楽々に

さて、こんな感じで見てくると、Macでのインストールや切り替えのときのコマンドなどを入力するのは結構面倒。 これを「がっつり簡単に」してくれるのが、Homebrewです。

本当にビールでも半分身体に入れ込んでもらっている感じで、らくらく簡単に行えます。ビールじゃなくてツールなので、そのあたりも酔わなくて安心です。 上記の各種インストール方法がうまくいかなかったとき あるいは 使ってみようかな?といった印象を持ったら、一番最初に、まずはインストールしてみましょう。 Homebrewのインストールにも、ターミナルを使います。

/usr/bin/ruby -e „“$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)“ を打ち込む

あとはたとえば、pyenvをインストールするときの $ brew install pyenv

のように、 非常にシンプルな入力で簡単に使えます。 エンジニアなら、まず最初にインストールしておいていいツールでしょう。

◆Pythonのバージョン切り替え方法についてはいかがでしたか?

たとえばPythonのVersion追加など、いくらしっかり必要なモジュールをダウンロードして確認したとしていても、どうしてもうまく当たらないケースなどがあります。 現在使用中の、ほかのプログラミングツールなどが原因となっているケースもあり、うまくインストール起動できないときに、ほかの大型のツール本体の側をアンインストール→Pythonなどをインストール →大型ツール本体を再度丸ごとインストールしなければならないということなども発生します。 たとえばVB Studioなどだと、再インストールは真夜中にちょちょこ起き出してはキー操作を行うなんていう、寝苦しい日々にさらに寝苦しさを追加してくれる、OSアップデートよりも面倒な作業を伴います。

だからこそ、今回ご紹介したようないくつかの方法の中から、自分の使っているマシン環境や、プログラミングで使っている各種ツール間での操作性、そして実行環境の最初の整備に使える作業時間に合わせて、最適な方法を選ぶようにしましょう。