#4941 caused HOME to be set to tmpdir when invoking pytester.runpytest_subprocess().
Because of this, if pytest is installed in USER_SITE, it will not be found when running pytester:
-------------------------------------------------------------------------------------- Captured stdout call --------------------------------------------------------------------------------------
running: /usr/local/bin/python -mpytest --basetemp=/tmp/pytest-of-vscode/pytest-0/test_valid_input_success0/runpytest-0
in: /tmp/pytest-of-vscode/pytest-0/test_valid_input_success0
-------------------------------------------------------------------------------------- Captured stderr call --------------------------------------------------------------------------------------
/usr/local/bin/python: No module named pytest
This issue can be seen by invoking python -m site from both environments:
sys.path = [
'/workspace/app',
'/usr/local/lib/python310.zip',
'/usr/local/lib/python3.10',
'/usr/local/lib/python3.10/lib-dynload',
'/home/vscode/.local/lib/python3.10/site-packages',
'/usr/local/lib/python3.10/site-packages',
]
USER_BASE: '/home/vscode/.local' (exists)
USER_SITE: '/home/vscode/.local/lib/python3.10/site-packages' (exists)
ENABLE_USER_SITE: True
--> '/home/vscode/.local/lib/python3.10/site-packages is where pytest (and all other packages) are installed
sys.path = [
'/tmp/pytest-of-vscode/pytest-10/test_valid_input_success0',
'/usr/local/lib/python310.zip',
'/usr/local/lib/python3.10',
'/usr/local/lib/python3.10/lib-dynload',
'/usr/local/lib/python3.10/site-packages',
]
USER_BASE: '/tmp/pytest-of-vscode/pytest-10/test_valid_input_success0/.local' (doesn't exist)
USER_SITE: '/tmp/pytest-of-vscode/pytest-10/test_valid_input_success0/.local/lib/python3.10/site-packages' (doesn't exist)
ENABLE_USER_SITE: True
Indeed:
➜ app git:(main) ✗ HOME=/tmp/pytest-of-vscode/pytest-10/test_valid_input_success0 python -m pytest --version
/usr/local/bin/python: No module named pytest
One workaround is to run pytest with:
PYTHONPATH=/home/vscode/.local/lib/python3.10/site-packages pytest .
Pytest version: 7.4.4
#4941 caused
HOMEto be set totmpdirwhen invokingpytester.runpytest_subprocess().Because of this, if
pytestis installed inUSER_SITE, it will not be found when runningpytester:This issue can be seen by invoking
python -m sitefrom both environments:-->
'/home/vscode/.local/lib/python3.10/site-packagesis wherepytest(and all other packages) are installedpytesterIndeed:
One workaround is to run
pytestwith:PYTHONPATH=/home/vscode/.local/lib/python3.10/site-packages pytest .Pytest version:
7.4.4