'ningún módulo llamado pip' al ejecutar tox
Tengo un archivo tox simple que ejecuta pruebas unitarias básicas de Python que estoy tratando de ejecutar en varias versiones de Python.
[tox]
envlist = py36, py37
[testenv]
setenv =
PYTHONPATH = {toxinidir}
Usé pyenv para administrar los entornos. Mi pyenv globalestá configurado en system. Corrí pyenv install 3.5.4 3.6.4a instalar y luego pyenv local ${version}a cargarlos.
ERROR: py36: InvocationError for command /Users/$user/workspace/${proj}/.tox/py36/bin/python -m pip freeze (exited with code 1)
py36-11.log
action: py36, msg: envreport
cwd: /Users/$user/workspace/${proj} cmd: /Users/$user/workspace/${proj}/.tox/py36/bin/python -m pip freeze /Users/$user/workspace/${proj}/.tox/py36/bin/python: No module named pip
Salida Tox completa
GLOB sdist-make: /Users/${user}/workspace/${proj}/setup.py py36 inst-nodeps: /Users/${user}/workspace/${proj}/.tox/.tmp/package/1/tally_ho-0.1.0.zip ERROR: invocation failed (exit code 1), logfile: /Users/${user}/workspace/${proj}/.tox/py36/log/py36-11.log ================================================================================================================================== log start =================================================================================================================================== /Users/${user}/workspace/${proj}/.tox/py36/bin/python: No module named pip =================================================================================================================================== log end ==================================================================================================================================== py37 inst-nodeps: /Users/${user}/workspace/${proj}/.tox/.tmp/package/1/tally_ho-0.1.0.zip py37 installed: attrs==20.2.0,importlib-metadata==1.7.0,iniconfig==1.0.1,more-itertools==8.5.0,packaging==20.4,pluggy==0.13.1,py==1.9.0,pyparsing==2.4.7,pytest==6.0.2,six==1.15.0,${proj}==0.1.0,toml==0.10.1,zipp==3.1.0
py37 run-test-pre: PYTHONHASHSEED='1245480162'
py37 run-test: commands[0] | pytest
============================================================================================================================= test session starts ==============================================================================================================================
platform darwin -- Python 3.7.7, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
cachedir: .tox/py37/.pytest_cache
rootdir: /Users/${user}/workspace/${proj}
collected 22 items
tests/test_cmd.py ....... [ 31%]
tests/test_config.py .... [ 50%]
tests/test_proj.py ........... [100%]
============================================================================================================================== 22 passed in 0.19s ==============================================================================================================================
___________________________________________________________________________________________________________________________________ summary ____________________________________________________________________________________________________________________________________
ERROR: py36: InvocationError for command /Users/${user}/workspace/${proj}/.tox/py36/bin/python -m pip freeze (exited with code 1)
$ pyenv --version pyenv 1.2.1 $ tox --version
3.20.0 imported from /Users/${user}/.virtualenvs/${proj}/lib/python3.7/site-packages/tox/__init__.py
$pyenv local
3.6.4
Verifiqué la ubicación de Python y vi que hay un binario pip en cada carpeta de Python. También intenté agregar pip a la requiresección del archivo tox, estableciendo pip en la depsconfiguración y estableciendo pip_preverdadero para ver si instalaría la última versión, pero obtengo el mismo resultado cada vez. No veo ninguna otra coincidencia con google-fu o Stack, así que supongo que cometí un error de usuario en alguna parte ...
Respuestas
El pyenv había estado haciendo algo extraño en mis caminos. Tuve que desactivar virtualenv y luego reactivarlo. Ahora pyenv funciona con todas las versiones de Python 3 que necesito. Para cualquiera que lea esto en el futuro, cuando hice mi investigación sobre este problema, a menudo estaba relacionado con algún tipo de problema de ruta.