Windowsでgit bash から pyenv-venv環境を構築する (pyenv-win)

少しはまったのでメモ

1. python をダウンロード&インストール

環境変数は設定しておく
非公式Pythonダウンロードリンク - Python downloads

2. pyenv-winをインストール

`pip install pyenv-win --target "$HOME.pyenv"

3. 環境変数を設定

pythonを呼び出したときにpyenvの方を読んでもらうため、一番うえに来るように設定しておく。
この時点ではshimsのほうはまだ存在していない(pyenv instlal XXXでpython環境をインストールすると自動的に生成される)が、どうせ必要になるので今やっておく。

C:\Users\<ユーザ名>\.pyenv\pyenv-win\shims
C:\Users\<ユーザ名>\.pyenv\pyenv-win\bin

4. pyenvで使うpythonをインストールする

pythonのバージョン3.8.2及び、仮想環境のインストール先myPyenv/.myenvは任意に変更可能です。以下は脳内変換してください。

## 入手可能なバージョンを確認
$ pyenv versions
## インストール
$ pyenv install 3.8.2  #python 3.8.2の場合

5. cmdに切り替えたあと、pyenvを生成

以下はコマンドラインに切り替えて実行をしましょう。

## 仮想環境を構築するディレクトリを生成・移動
$ mkdir myPyenv
$ cd myPyenv
## myPyenv以下ではpython 3.8.2を使いますよ、という宣言
$ pyenv local 3.8.2
$ pyenv rehash

この時点で、pythonは3.8.2が呼ばれるはずです。 この作業をgit bashのままやってしまうと、pyenv versionsは3.8.2になってくれるのに、python --verisonは#1でダウンロード&インストールしたバージョンが選択されてしまいます。 次に実行するpython -m venv .myenvで作られる仮想環境は、そのタイミングで呼ばれるpythonのバージョンがベースになるので、python --versionで3.8.2になっていないと困ります。

# 確認
$ pyenv versions
* 3.8.2 
# 確認
$ python --version
3.8.2
# 仮想環境作成
$ python -m venv .myenv

これで基本的にはOKです。でも、windowsbash経由で仮想環境を行き来するのは面倒なので、~/.bashrcに以下のようなエイリアスを貼っておくとよいと思います

function myenv(){
    cd C:/Users/<ユーザ名>/myPyenv/.myenv/Scripts
    . activate
    cd -
}
alias python='winpty python.exe'
alias myenv=myenv

これでターミナルを再起動する(あるいはsource ~/.bashrc)と、myenvと打つだけで仮想環境に入り込めます。

$ myenv
/c/Users/<ユーザ名>
(myenv)

deactivateと打つと抜け出せます。

ものぐさでも楽器を練習したい①

初投稿からいきなり個人的な話ですが、一日中PCにへばりつく様な人生を送っている私のようなバンドマンは以下の悪循環にさいなまれることが多いと思います。異論ももちろんあると思います。。

  1. バッキングトラックに合わせて練習しないと効率が悪いのは分かっている
  2. でも自分のイヤホンはスマホやPCに刺さっていて、楽器のためにあるのではない
  3. PCやスマホを捨ててヘッドフォンアンプに楽器をつなぐほどの集中力はない
  4. Aux in からPCの音を流せばええやん! と思うけど、都度配線を変えるのは面倒

全ては3のような集中力や4のちょっとした配線作業をやるモチベーションすらない自分に原因があるのは分かっています。でも本質はそこではないのです。ワガママを叶えるガジェットを作ってこそエンジニアなので、そんなモチベーションだから下手なんだぞ!と説教されても困るのです。本気で集中したかったら個人練習でスタジオを抑えましょう。

ということで作ったのが以下のガジェットです。詳細は追い追い説明するとして、以下の機能を持っています。

  1. スマホやPCの音をBluetoothで受信
  2. 楽器の音をオーディオプラグ経由から入力
  3. 両者の音を増幅して
  4. イヤフォン端子から出力!

f:id:imachooon:20190727165505j:plain
AudioMixer完成品

ちなみにですが、機能の1番目(Bluetooth入力)は仕方なく後から追加した機能で、もともとは最上段のスタックはありませんでした。電源ごとスマホから供給し、イヤフォン端子からスマホの音を入力していたのです。

f:id:imachooon:20190727170222j:plain
Bluetooth化される前

ところがどっこい、近年のBluetoothヘッドセットブームにより私のスマーフォンからもイヤフォン端子が無くなってしまいました。私の足りない頭ではUSB端子から電源を出力しつつオーディオも出力する良い方法が思いつかなかったのです。

というわけで後からBluetooth機能を追加するために以下を購入し、現在の形になっています。これでPCから出力する場合にはイヤフォンの差し替えすら不要で楽器とPCの音を混ぜることもできます。

www.amazon.co.jp

以降、制作日誌的なものを順次公開していけたらと思いますが、所詮素人に毛の生えた電子工作ということをご了承ください。プロ目線から見た電子回路的なアドバイスや、ちゃんとした会社からの製品化を私のほうからも心よりお待ちしています。

今後、こういったゆるい制作日誌のみならず、お堅いプログラミングの話まで色々挟んでいこうと思います。また、個人的にたくさんお世話になっているCourseraやUdacityなどのMOOCについても色々紹介できたらと思います。