Skip to content

pipx unable to create venv when using Python from Microsoft Store #1164

@dechamps

Description

@dechamps

On my Windows 11 23H2 (22631.2661) system, with Python 3.12.1 installed from the Microsoft Store, and following the pipx Windows installation instructions, this is what happens when I try to install anything:

PS C:\Users\etien> pipx install --verbose pycowsay
pipx >(setup:824): pipx version is 1.3.3
pipx >(setup:825): Default python interpreter is 'C:\Users\etien\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\python.exe'
pipx >(rmdir:55): removing directory C:\Users\etien\AppData\Local\pipx\pipx\trash
The system cannot find the path specified.
pipx >(rmdir:71): Failed to delete C:\Users\etien\AppData\Local\pipx\pipx\trash. You may need to delete it manually.
pipx >(package_name_from_spec:370): Determined package name: pycowsay
pipx >(package_name_from_spec:371): Package name determined in 0.0s
creating virtual environment...
pipx >(run_subprocess:171): running C:\Users\etien\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\python.exe -m venv --without-pip C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay
pipx >(run_subprocess:171): running <checking pip's availability>
pipx >(run_subprocess:171): running C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay\Scripts\python.exe -c import sysconfig; print(sysconfig.get_path('purelib'))
No pyvenv.cfg file
pipx >(run_subprocess:171): running C:\Users\etien\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\Local\pipx\pipx\shared\Scripts\python.exe -c import sysconfig; print(sysconfig.get_path('purelib'))
pipx >(run_subprocess:171): running C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay\Scripts\python.exe --version
pipx >(_parsed_package_to_package_or_url:137): cleaned package spec: pycowsay
installing pycowsay...
pipx >(run_subprocess:171): running C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay\Scripts\python.exe -m pip --no-input install pycowsay
pipx >(subprocess_post_check_handle_pip_error:322): 'C:\\Users\\etien\\AppData\\Local\\pipx\\pipx\\venvs\\pycowsay\\Scripts\\python.exe -m pip --no-input install pycowsay' failed
pipx >(subprocess_post_check_handle_pip_error:337): Fatal error from pip prevented installation. Full pip output in file:
    C:\Users\etien\AppData\Local\pipx\pipx\Logs\cmd_2023-12-23_10.41.50_pip_errors.log

pipx >(rmdir:55): removing directory C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay
The system cannot find the path specified.
pipx >(rmdir:67): Failed to delete C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay. Will move it to a temp folder to delete later.
Error installing pycowsay.

C:\Users\etien\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\Local\pipx\pipx\Logs\cmd_2023-12-23_10.50.12.log (note the strange path that doesn't match the above, more on that below) contains:

   108.7ms (setup:822): 2023-12-23 10:50:12
   108.7ms (setup:823): C:\Users\etien\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\pipx\__main__.py install pycowsay
   108.7ms (setup:824): pipx version is 1.3.3
   108.7ms (setup:825): Default python interpreter is 'C:\Users\etien\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\python.exe'
   109.7ms (rmdir:55): removing directory C:\Users\etien\AppData\Local\pipx\pipx\trash
   118.5ms (rmdir:71): Failed to delete C:\Users\etien\AppData\Local\pipx\pipx\trash. You may need to delete it manually.
   122.7ms (package_name_from_spec:370): Determined package name: pycowsay
   122.7ms (package_name_from_spec:371): Package name determined in 0.0s
   123.7ms (run_subprocess:171): running C:\Users\etien\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\python.exe -m venv --without-pip C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay
   206.2ms (run_subprocess:185): stdout:
   206.2ms (run_subprocess:187): stderr: Actual environment location may have moved due to redirects, links or junctions.
  Requested location: "C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay\Scripts\python.exe"
  Actual location:    "C:\Users\etien\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\Local\pipx\pipx\venvs\pycowsay\Scripts\python.exe"
   206.2ms (run_subprocess:188): returncode: 0
   206.2ms (run_subprocess:171): running <checking pip's availability>
   273.4ms (run_subprocess:185): stdout: ModuleSpec(name='pip', loader=<_frozen_importlib_external.SourceFileLoader object at 0x000001D5DD4E3620>, origin='C:\\Users\\etien\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\Local\\pipx\\pipx\\shared\\Lib\\site-packages\\pip\\__init__.py', submodule_search_locations=['C:\\Users\\etien\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\\LocalCache\\Local\\pipx\\pipx\\shared\\Lib\\site-packages\\pip'])
   273.4ms (run_subprocess:188): returncode: 0
   273.4ms (run_subprocess:171): running C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay\Scripts\python.exe -c import sysconfig; print(sysconfig.get_path('purelib'))
   313.8ms (run_subprocess:185): stdout:
   313.8ms (run_subprocess:188): returncode: 106
   313.8ms (run_subprocess:171): running C:\Users\etien\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\Local\pipx\pipx\shared\Scripts\python.exe -c import sysconfig; print(sysconfig.get_path('purelib'))
   376.8ms (run_subprocess:185): stdout: C:\Users\etien\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\Local\pipx\pipx\shared\Lib\site-packages
   376.8ms (run_subprocess:188): returncode: 0
   376.8ms (run_subprocess:171): running C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay\Scripts\python.exe --version
   384.8ms (run_subprocess:185): stdout:
   384.8ms (run_subprocess:187): stderr: No pyvenv.cfg file
   384.8ms (run_subprocess:188): returncode: 106
   384.8ms (_parsed_package_to_package_or_url:137): cleaned package spec: pycowsay
   384.8ms (run_subprocess:171): running C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay\Scripts\python.exe -m pip --no-input install pycowsay
   393.0ms (run_subprocess:188): returncode: 106
   393.0ms (subprocess_post_check_handle_pip_error:322): 'C:\\Users\\etien\\AppData\\Local\\pipx\\pipx\\venvs\\pycowsay\\Scripts\\python.exe -m pip --no-input install pycowsay' failed
   394.1ms (subprocess_post_check_handle_pip_error:337): Fatal error from pip prevented installation. Full pip output in file:
    C:\Users\etien\AppData\Local\pipx\pipx\Logs\cmd_2023-12-23_10.50.12_pip_errors.log
   395.1ms (rmdir:55): removing directory C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay
   402.7ms (rmdir:67): Failed to delete C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay. Will move it to a temp folder to delete later.
   403.8ms (cli:888): PipxError: Error installing pycowsay.
Traceback (most recent call last):
  File "C:\Users\etien\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\pipx\main.py", line 885, in cli
    return run_pipx_command(parsed_pipx_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\etien\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\pipx\main.py", line 212, in run_pipx_command
    return commands.install(
           ^^^^^^^^^^^^^^^^^
  File "C:\Users\etien\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\pipx\commands\install.py", line 81, in install
    venv.install_package(
  File "C:\Users\etien\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\pipx\venv.py", line 254, in install_package
    raise PipxError(f"Error installing {full_package_description(package_name, package_or_url)}.")
pipx.util.PipxError: Error installing pycowsay.
   404.7ms (cli:896): pipx finished.

C:\Users\etien\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\Local\pipx\pipx\Logs\cmd_2023-12-23_15.04.13_pip_errors.log contains:

PIP STDOUT
----------

PIP STDERR
----------
No pyvenv.cfg file

Additional information:

PS C:\Users\etien> pipx --version
1.3.3
PS C:\Users\etien> (Get-Command python3).Path
C:\Users\etien\AppData\Local\Microsoft\WindowsApps\python3.exe
PS C:\Users\etien> python3 -c 'import sys; print(sys.executable)'
C:\Users\etien\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\python.exe
PS C:\Users\etien> (Get-Command pipx).Path
c:\users\etien\appdata\local\packages\pythonsoftwarefoundation.python.3.12_qbz5n2kfra8p0\localcache\local-packages\python312\scripts\pipx.exe
PS C:\Users\etien> pipx environment
The system cannot find the path specified.
Failed to delete C:\Users\etien\AppData\Local\pipx\pipx\trash. You may need to delete it manually.
Environment variables (set by user):

PIPX_HOME=
PIPX_BIN_DIR=
PIPX_MAN_DIR=
PIPX_SHARED_LIBS=
PIPX_DEFAULT_PYTHON=
USE_EMOJI=

Derived values (computed by pipx):

PIPX_HOME=C:\Users\etien\AppData\Local\pipx\pipx
PIPX_BIN_DIR=C:\Users\etien\.local\bin
PIPX_MAN_DIR=C:\Users\etien\.local\share\man
PIPX_SHARED_LIBS=C:\Users\etien\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\Local\pipx\pipx\shared
PIPX_LOCAL_VENVS=C:\Users\etien\AppData\Local\pipx\pipx\venvs
PIPX_LOG_DIR=C:\Users\etien\AppData\Local\pipx\pipx\Logs
PIPX_TRASH_DIR=C:\Users\etien\AppData\Local\pipx\pipx\trash
PIPX_VENV_CACHEDIR=C:\Users\etien\AppData\Local\pipx\pipx\Cache
PIPX_DEFAULT_PYTHON=C:\Users\etien\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\python.exe
USE_EMOJI=true

The output of this command is especially intruiguing:

PS C:\Users\etien> C:\Users\etien\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\python.exe -m venv --without-pip C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay
Actual environment location may have moved due to redirects, links or junctions.
  Requested location: "C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay\Scripts\python.exe"
  Actual location:    "C:\Users\etien\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\Local\pipx\pipx\venvs\pycowsay\Scripts\python.exe"

And indeed, on my system C:\Users\etien\AppData\Local\pipx\pipx\venvs\pycowsay doesn't exist at all, but C:\Users\etien\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\Local\pipx\pipx\venvs\pycowsay does (and contains pyvenv.cfg). It looks like this is because of path redirection. It is not clear to me if this is what's causing the problem of if it's just a red herring.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions