python3
python2.7
Anaconda

備忘録_Base環境はpython 3.6だけど、用途に応じて2.7も使えるようにする

はじめに

Advent Calendar を契機に、何でもいいから最低月1回はなんか書くって自分で決めたので、とりあえず今月書いてないってならないように最低限1個投稿します(本当はRas-piでGoogle Assistantを召喚したいけど、まだRas-piが届いてない)

書くこと

昨日API勉強会的なのをスモールグループでやって、第1回の超基礎編だったので、まずpythonのどの環境使うかっていうことが若干議論になりました。
pythonの最新モジュールは3.6.xで推奨もこちらだと思いますが(機能的に)、いまだに2.7.xも広く使われています。例えば、Cisco IOS XE 16.Xでon-box pythonできるようになりましたが、それも2.7.xです(DevNetを見ると徐々に書き換えが進んでるようです)。
結果的に、3.6で勉強会は行ったわけですが、わざわざ普通の環境には3.6を置いて、別のVM環境に2.7を用意とかめんどくさいのでなんか方法ないのかなー、とACIとpythonを今勉強しながら休憩がてら調べてたらあったので、備忘録としてメモ書きすることにしました。

環境

  • Windows 10
  • Python 3.6.3
  • Anaconda 5.0.1

やったこと

1. python 2.7の仮想環境をAnaconda Promptで作る

C:\Users\yunambu\Desktop>conda create -n py27 python=2.7 anaconda
Solving environment: done

## Package Plan ##
  environment location: ~

  added / updated specs:
  - anaconda
  - python=2.7

The following packages will be downloaded:
(省略)

Proceed ([y]/n)? y
(省略)
Preparing transaction: done
Verifying transaction: done
(省略)

2. 環境の確認

C:\Users\yunambu\Desktop>conda info -e
# conda environment:
#
base           * ~anaconda3
py27             ~anaconda3\envs\py27

3. 環境の切替

C:\Users\yunambu\Desktop>python
Python 3.6.3 |Anaconda custom (64-bit)| (default, Oct 15 2017, 03:27:45) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> ^Z

C:\Users\yunambu\Desktop>activate py27

C:\Users\yunambu\Desktop>python
Python 2.7.14 |Anaconda, Inc.| (default, Oct 15 2017, 03:34:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> ^Z

C:\Users\yunambu\Desktop>deactivate

C:\Users\yunambu\Desktop>python
Python 3.6.3 |Anaconda custom (64-bit)| (default, Oct 15 2017, 03:27:45) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

まとめ

特に複雑な手順を経ることもなく、簡単に切替が可能になりました。これで同一のプロンプトで一行(de)activeを書けば、用途に合わせてどちらも使えるようになります。python 2.7を起動・停止する際に、ユーザ権限が標準でなく、Power Userの場合は、以下のコマンドに代わるのでご注意ください。

source activate py27
source deactivate

備忘録(完)