Skip to content

Can Not Use Shell Builtin as First Command in pipenv run #6186

Open
@ds-mitchell-johnstone

Description

@ds-mitchell-johnstone

Issue description

When running pipenv in Ubuntu 22.04.4 LTS on Windows 10 x86_64 using WSL2, pipenv run fails to execute built-in commands that don't provide a path from which <command>.

A simple example of this bug would be:

  • pipenv run cd

which will fail with

Error: the command cd could not be found within PATH or Pipfile's [scripts].

The issue appears to be that in do_run_posix in pipenv/pipenv/routines/shell.py the first thing we try to do is to get a command path by expanding the first command with which. For shell builtins such as cd, there is no expansion that can be found with which, leading to the error logged above.

Since pipenv uses the host shell I don't think there is a reason we shouldn't accept leading builtin commands.

Expected result

If running a Ubuntu shell, I'd expect pipenv run cd to start a new shell with the virtual environment, run the cd command, and exit without output.

Actual result

$ cd
Error: the command cd could not be found within PATH or Pipfile's [scripts].

Steps to replicate

  • fresh install of ubuntu.
  • pipenv --python 3.11
  • run pipenv run cd

$ pipenv --support

Pipenv version: '2024.0.1'

Pipenv location: '/home/johnstonem/.local/lib/python3.11/site-packages/pipenv'

Python location: '/home/johnstonem/.pyenv/versions/3.11.9/bin/python3.11'

OS Name: 'posix'

User pip version: '24.0'

user Python installations found:

PEP 508 Information:

{'implementation_name': 'cpython',
 'implementation_version': '3.11.9',
 'os_name': 'posix',
 'platform_machine': 'x86_64',
 'platform_python_implementation': 'CPython',
 'platform_release': '5.15.153.1-microsoft-standard-WSL2',
 'platform_system': 'Linux',
 'platform_version': '#1 SMP Fri Mar 29 23:14:13 UTC 2024',
 'python_full_version': '3.11.9',
 'python_version': '3.11',
 'sys_platform': 'linux'}

System environment variables:

  • SHELL
  • WSL2_GUI_APPS_ENABLED
  • TERM_PROGRAM_VERSION
  • WSL_DISTRO_NAME
  • TMUX
  • WT_SESSION
  • TMUX_PLUGIN_MANAGER_PATH
  • NAME
  • PWD
  • LOGNAME
  • HOME
  • LANG
  • WSL_INTEROP
  • LS_COLORS
  • WAYLAND_DISPLAY
  • LESSCLOSE
  • TERM
  • LESSOPEN
  • USER
  • TMUX_PANE
  • DISPLAY
  • SHLVL
  • XDG_RUNTIME_DIR
  • PYENV_ROOT
  • WSLENV
  • XDG_DATA_DIRS
  • BROWSER
  • PATH
  • DBUS_SESSION_BUS_ADDRESS
  • HOSTTYPE
  • PULSE_SERVER
  • WT_PROFILE_ID
  • OLDPWD
  • TERM_PROGRAM
  • _
  • PIP_DISABLE_PIP_VERSION_CHECK
  • PYTHONDONTWRITEBYTECODE
  • PYTHONFINDER_IGNORE_UNSUPPORTED

PipenvΓÇôspecific environment variables:

DebugΓÇôspecific environment variables:

  • PATH: /home/johnstonem/.pyenv/versions/3.11.9/bin:/usr/bin:/home/johnstonem/.pyenv/versions/3.11.9/bin:/home/johnstonem/.pyenv/bin:/home/johnstonem/.local/bin:/usr/bin:/home/johnstonem/.pyenv/versions/3.11.9/bin:/home/johnstonem/.pyenv/bin:/home/johnstonem/.local/bin:/usr/bin:/home/johnstonem/.pyenv/versions/3.11.9/bin:/home/johnstonem/.pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/lib/wsl/lib:/mnt/c/WINDOWS/CCM/:/mnt/c/WINDOWS/system32:/mnt/c/WINDOWS:/mnt/c/WINDOWS/System32/Wbem:/mnt/c/WINDOWS/System32/WindowsPowerShell/v1.0/:/mnt/c/WINDOWS/system32/config/systemprofile/AppData/Local/Microsoft/WindowsApps:/mnt/c/Program Files/Git/cmd:/mnt/c/Program Files (x86)/Microsoft SQL Server/160/DTS/Binn/:/mnt/c/Program Files/Azure Data Studio/bin:/mnt/c/Program Files/PuTTY/:/mnt/c/Program Files/Docker/Docker/resources/bin:/mnt/c/Users/mitchelj/AppData/Local/Programs/Python/Python311/Scripts/:/mnt/c/Users/mitchelj/AppData/Local/Programs/Python/Python311/:/mnt/c/Users/mitchelj/AppData/Local/Microsoft/WindowsApps:/mnt/c/Users/mitchelj/AppData/Local/Programs/Microsoft VS Code/bin:/mnt/c/Program Files/R/R-4.3.1/bin:/mnt/c/Program Files (x86)/GnuWin32/bin:/snap/bin:/opt/mssql-tools18/bin:/opt/mssql-tools18/bin:/opt/mssql-tools18/bin
  • SHELL: /bin/bash
  • LANG: C.UTF-8
  • PWD: /mnt/c/test

Contents of Pipfile ('/mnt/c/test/Pipfile'):

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"

[packages]

[dev-packages]

[requires]
python_version = "3.11"
python_full_version = "3.11.9"

Metadata

Metadata

Assignees

No one assigned

    Labels

    Contributor CandidateThe issue has been identified/triaged and contributions are welcomed/encouraged.help wantedtriage

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions