pipenv v2023.5.19以降で、PCにインストール済みのPythonを認識できなくなってしまった。
解決したいこと
以前からpipenvを使ってWindows上に仮想環境を作っていたのですが、v2023.5.19以降のバージョンでPCにインストールしているPythonを認識できなくなってしまいました。そのため、
> py -m pipenv --python 3.9
や、カレントディレクトリにpipfileやpipfile.lockが存在している状態での、
> py -m pipenv install
> py -m pipenv sync
に失敗してしまいます。
pipenvをv2023.4.29以前にダウングレードするだけで、前と変わりなく上記コマンドは実行可能です。
pipenv v2023.5.19以降のバージョンでも、
> py -m pipenv --python [USERPROFILE]\AppData\Local\Programs\Python\Python39\python.exe
とフルパスで使用するpython.exeを指定してあげると大丈夫なようです。
おそらく v2023.4.29 -> v2023.5.19 の間の変更に伴う問題と思いますが、最新バージョンのpipenvにおいても、使用するPythonをフルパスで指定せずに済む方法があれば教えていただきたいです。
環境等の情報
- Windows 10 Pro 22H2
- pyenv-winは使わず、必要なバージョンのインストーラをPython公式から入手して都度インストールしている。
- 個々のPythonにPathは通さず、
py -3.10
やpy -m pipenv --python 3.9
のように使い分けていた。 - インストール済みのPython(
py --list-paths
で確認した結果)は下記の通り。
-V:3.11 * [USERPROFILE]\AppData\Local\Programs\Python\Python311\python.exe
-V:3.10 [USERPROFILE]\AppData\Local\Programs\Python\Python310\python.exe
-V:3.9 [USERPROFILE]\AppData\Local\Programs\Python\Python39\python.exe
-V:3.8 [USERPROFILE]\AppData\Local\Programs\Python\Python38\python.exe
-V:3.7 [USERPROFILE]\AppData\Local\Programs\Python\Python37\python.exe
発生している問題・エラー
pipenv v2023.5.19以降の場合(カレントディレクトリにPytho 3.10を使うpipfileが存在している。)
PS > py -m pipenv install
Warning: Python 3.10 was not found on your system...
Neither 'pyenv' nor 'asdf' could be found to install Python.
$ pipenv --python path\to\python
PS >
pipenv v2023.4.29以前にダウングレードした場合
PS > py -m pip install -U pipenv==2023.4.29
<中略>
Successfully installed pipenv-2023.4.29
PS > py -m pipenv install
Creating a virtualenv for this project...
<中略>
Successfully created virtual environment!
<中略>
All dependencies are now up-to-date!
PS >
自分で試したこと
- pipenv v2023.4.29以前は問題なく、それより新しいバージョンで発生する。
- pipenv v2023.4.29より新しいバージョンでも、フルパスでpython.exeを指定すれば仮想環境の作成はできる。
1