はじめに
今回は、pyenv での Python のインストールに関する話です。
今回の話の内容を使ったきっかけ
今回の内容を使ったきっかけを、少し書いてみます。
個人で使っている Mac に関し、自宅だと以下の M4 の Mac mini をよく使っています。
それと別に、以前から持ち運び用でよく使っている以下のスペックの「Intel版の MackBook Pro」もあります。
これらで異なるバージョンの Python を混在させるのに「pyenv」を使っていて、その中での話です。
上記 2つ目のほうの MackBook Pro で、久しぶりに特定バージョンの Python を pyenv 追加しようとした時に、インストールが途中で止まっているような感じがありました。その時に単純に時間がかかっているだけなのか、エラーを出さずに処理がフリーズしてたりなどするのかが、とても分かりにくい感じがありました(単純に時間がかかっているだけ、という気がしつつも)。
例えば、↓こんな感じで「python-build: use zlib from xcode sdk」という表示が出てから、わりと長い時間、表示が変化しない状態です。
ちなみに冒頭の Mac mini だと、そんな不安を感じさせない処理時間でインストールが進んでいました。
今回の内容
その状態で長時間、放置してから再度状況を確認するということもできますが、きちんとインストールが進んでいるかを確認できるようにしたいと思いました。
インストールコマンド
最終的に使ったインストールコマンドを掲載してみます。 pyenv install 【Pythonのバージョンなど】
とうコマンドに、 -v
をオプションでつけた形の以下になります。
pyenv install -v 【Pythonのバージョンなど】
このコマンドを使いインストールをすると、インストール途中の細かな処理の情報が表示されるようになり、随時、処理が行われている場合は何らか表示が出て確認できるようになりました。
調査中に出てきた情報
それと調査途中で出てきたコマンドに以下もあり、後でこれにも触れておきます。
PYENV_DEBUG=1 pyenv install -v 3.13.4
コマンドを探した時の流れ
ここからは上記のコマンドの情報にたどり着いたり、内容を公式情報で確認した流れです。情報を探した方法は Web検索と ChatGPT でのやりとりの併用になるのですが、それをメモとして残しておきます。
ChatGPT で出てきた情報
ChatGPT では、以下の内容を入れて情報を探ってみました。
自分が入力したコマンドとその後のターミナル上での表示に関する内容を、プロンプトに含めた構成です。
ChatGPT の返答
ChatGPT の返答では、考えられる原因として Xcode まわりの対処や zlib 関連の対処など、複数の情報・内容が提示されました。このとき合わせて行っていた Web検索でも、同じような情報に関する複数の記事が出てきていました。
そういった、情報・対処法の候補があれこれ出ている中で、以下の内容も出てきていました。
そしてこのオプションについて、念のため、公式情報で説明が描かれている場所・内容を確認しました。以下で説明を見ると「コンパイル状況を標準出力に表示するオプション」のようだったので、この -v
をオプションで足せば、処理がフリーズしていないかが分かりそうでした。
(話はずれますが、下記のページは、自分は今回初めて見に行った気がします)
https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-install
気になった部分
とりあえず、今回は -v
をオプションで足せば OK という感じで目的を達成できましたが、上記の調査で出てきていた PYENV_DEBUG=1
という部分が気になりました。
それで、情報を探してみました。以下は、とりあえず公式情報で「PYENV_DEBUG」の意味が書かれているところです。
どうやら、この環境変数を使って詳細なログを出力させることもできるようです。
今回の目的では、処理中に何らか細かいログが出れば良いので PYENV_DEBUG単体で用いる以下で良さそうな感じでs。
PYENV_DEBUG=1 pyenv install 3.12