最近は MacOS を使っているので、調べたことが無かったが、pyATS/Genie を Windows でも試すために Windows 環境での Python3 仮想環境の構築を調べてみた。Windows にも WSL(Windows subsystem for Linux) という機能を使い、Linux をインストールすることができる。
WSL を有効にする
Windows メニューバーの検索に powershell と入力し、”Run as Administrator” を実行。
Powershell で下記を実行。
PS C:\Users\higas_000> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
プロンプトが表示されたら、Y を入力し再起動する。
Linux Distribution を選ぶ
Microsoft Store を開き、linux で検索。
今回は Ubuntu を選択して Get をクリック。Ubuntu で 200MB くらいあった。
Ubuntu(Linux) 初期設定
Windows バーの検索に ubuntu と入力し、WSL(Ubuntu) を起動する。最初はインストールが行われるので少々待つ。
そしてユーザ名とパスワードを設定すると。。。そこには Ubuntu が、すごい簡単!
一応、パッケージを最新にしておく。
ccieojisan@house-surface:~$ sudo apt update && sudo apt upgrade
Python3 仮想環境のインストール
Ubuntu が入れば後は前に書いた下記の記事とほぼ同じです。詳細はこちらを参照ください。
念のため、ページを飛ばなくてもいいように、簡単にコマンドとアウトプットだけ下記に貼り付け。
ccieojisan@house-surface:~$ sudo apt install -y gcc make libssl-dev libbz2-dev libreadline-dev libsqlite3-dev zlib1g-dev
ccieojisan@house-surface:~$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
Cloning into '/home/ccieojisan/.pyenv'...
remote: Enumerating objects: 379, done.
remote: Counting objects: 100% (379/379), done.
remote: Compressing objects: 100% (229/229), done.
remote: Total 17295 (delta 310), reused 187 (delta 145), pack-reused 16916
Receiving objects: 100% (17295/17295), 3.38 MiB | 812.00 KiB/s, done.
Resolving deltas: 100% (11762/11762), done.
ccieojisan@house-surface:~$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
ccieojisan@house-surface:~$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
ccieojisan@house-surface:~$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
ccieojisan@house-surface:~$ source ~/.bash_profile
ccieojisan@house-surface:~$ pyenv install 3.6.5
ccieojisan@house-surface:~$ git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
Cloning into '/home/ccieojisan/.pyenv/plugins/pyenv-virtualenv'...
remote: Enumerating objects: 30, done.
remote: Counting objects: 100% (30/30), done.
remote: Compressing objects: 100% (24/24), done.
remote: Total 2064 (delta 14), reused 13 (delta 6), pack-reused 2034
Receiving objects: 100% (2064/2064), 592.75 KiB | 1.62 MiB/s, done.
Resolving deltas: 100% (1403/1403), done.
ccieojisan@house-surface:~$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile
ccieojisan@house-surface:~$ source ~/.bash_profile
ccieojisan@house-surface:~$ pyenv virtualenv 3.6.5 py365
Requirement already satisfied: setuptools in /home/ccieojisan/.pyenv/versions/3.6.5/envs/py365/lib/python3.6/site-packages
Requirement already satisfied: pip in /home/ccieojisan/.pyenv/versions/3.6.5/envs/py365/lib/python3.6/site-packages
ccieojisan@house-surface:~$ pyenv activate py365
pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.
(py365) ccieojisan@house-surface:~$
最後に pyATS/Genie のパッケージをインストールしてみて、動くのを確認。
(py365) ccieojisan@house-surface:~$ pip install pyats genie
(py365) ccieojisan@house-surface:~$ genie -h
Usage:
genie <command> [options]
Commands:
diff Command to diff two snapshots saved to file or directory
learn Command to learn device features and save to file
parse Command to parse show commands
run Run Genie triggers & verifications in pyATS runtime environment
shell enter Python shell and load a Genie testbed file and/or Pickled file
General Options:
-h, --help Show help
Run 'genie <command> --help' for more information on a command.
簡単に Windows でも Linux が使えるので Python をやるのに WSL は非常にオススメです。