pyenv-winで環境構築したい
音声再生を伴う簡単なアプリを作りたいと思ったのですが、WSL2上からだとどうも音声出力が面倒。
仕方ないので、全く同じ環境をwindows上で再現しようと思い、windows版のpyenvを使って綺麗な環境を作ろうと思ったのですが、途中で思わぬつまずきに遭遇しました。
問題に遭遇するまで
GitHub - pyenv-win/pyenv-win: pyenv for Windows. pyenv is a simple python version management tool. It lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well.
pyenv for Windows. pyenv is a simple python version management tool. It lets you easily switch between multiple versions...
これをpip installで導入し、pyenv install --list
でバージョン確認したところ、なんと最新版が3.11.b04!
私が使いたかったのは3.11.11とかなので、全然足りません。
pyenv update
でリポジトリ更新できるかと思いきや、次のようなエラー。
:: [Info] :: Mirror: https://www.python.org/ftp/python
XXX\.pyenv\pyenv-win\libexec\pyenv-update.vbs(279, 9) htmlfile: This command is not supported.
公式をスクレイピングしてバージョン更新しようとしても、一部VBSの関数が古いのかな?うまく動かず、躓きました。
解決法
やりたいことは、新しいバージョンがあると教えるだけのことなんですよ。少しフォルダを覗いてみると、どうやらxmlで管理しているだけの模様。XXX\.pyenv\pyenv-win\.versions_cache.xml
に列挙しているみたいです。
exe形式で公式のリポジトリにおいてあるバージョンしかインストールできなさそうな雰囲気なのですが、3.11.10以降はexeが公式においていない模様。なので、3.11.9を以下のようにxmlに追加しました。
https://www.python.org/ftp/python/3.11.9/
<version x64="true" webInstall="false" msi="false">
<code>3.11.9</code>
<file>python-3.11.9-amd64.exe</file>
<URL>https://www.python.org/ftp/python/3.11.9/python-3.11.9-amd64.exe</URL>
</version>
すると、無事にpyenvが3.11.9のことを認識し、pyenv install 3.11.9
も問題なく通りました。
まとめ
だからwsl2で開発がしたかったんだよね。Windows君はいつもそう。
コメント