新しく作ったディレクトリでpipenv --python 3.13
等と叩いたときに、仮想環境が作られない時の解決方法です。エラーは無く、ただ終了してしまう、という状況です。
Python のバージョンは何を指定しても結果は同じ。pipenv shell
で構築済みの環境には入れる。pipenv --help
やpipenv --version
は問題無く動く。PC/Mac の再起動、pipenv のアップデート、どれを試しても変化無し。Pipenvでよく出喰わす問題やローカル LLM、Google 先生に聞いてもこれと言った原因が見つからない。というような状況でした (「出喰わす」は元のページの書き方に従ってます)。
Contents
原因
原因は、何かの手違いで上位のディレクトリに仮想環境が作られていたから、でした。仮想環境の中に別の仮想環境は作れないので、pipenv --python
は失敗していたと言うことのようです。--verbose
を付けてもエラーは出ず、自分のミスとはいえ、何かヒントをくれても…と思ってしまいました (pipenv は brew でインストールした version 2024.4.1)。
確認方法
pipenv --venv
で、作成済み仮想環境の.venv
のパスが表示されます。クリーンな状態であれば以下の様に、環境が無いよ、と表示されます。
% pipenv --venv
No virtualenv has been created for this project/Users/handsome/Documents/Python/NewDir yet!
Aborted!
逆に、構築済みの場合はパスのみが表示されます。ボクの場合は新しく作った NewDir の上のディレクトリに環境があったわけです。
% pipenv --venv
/Users/handsome/Documents/Python/.venv
解決方法
- 既存の pipenv 環境下に無いディレクトリに仮想環境を作る
- 不要な pipenv 環境を削除する
たいていの場合は 1だと思いますが、ボクのケースでは間違えて作ってしまった環境を削除する必要があったので、以下手順で解消しました。
cd .. # pipenv を削除する親環境へ移動
pipenv --rm
rm Pipfile*
あまり pipenv の仮想環境だけを作り直すことが無かったので知りませんでしたが、Pipfile (と Pipfile.lock) はpipenv --rm
では削除されないので、手動で削除する必要がありました。
普通はあり得ないミス
ボクの場合、親ディレクトリに Python 3.6 の環境が作られていました。Pipfile のタイムスタンプから 2ヶ月前に作られた様ですが、なぜ 3.6 の環境が 2024年末に必要だったのか全く思い出せません。Python のバージョンを指定しないとエラーになるし、pipenv shell
とするとボクの環境では Python 3.13 がインストールされるので、本当に謎です。
ともあれ pipenv が何らかのエラーを吐いてくれたらもっと早く解決できたのに、と思ってしまいました。というわけで、このページにたどり着く人はいないかもしれませんが、自戒の意味も込めて残しておきます。
Image by Stable Diffusion (Mochi Diffusion)
当初「家の建て方を忘れた大工さん」みたいなイメージを考えていたのですがうまく指示出しできなかったので、「住宅街の更地」にしてみました。わかりづらいですけど。
Date:
2025年2月9日 13:57:59
Model:
realisticVision-v51VAE_original_768x512_cn
Size:
768 x 512
Include in Image:
an empty lot between american style houses
Exclude from Image:
Seed:
1751847373
Steps:
20
Guidance Scale:
20.0
Scheduler:
DPM-Solver++
ML Compute Unit:
CPU & GPU