'ningún módulo llamado pip' al ejecutar tox

Sep 16 2020

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

1 SandwichHeat Sep 21 2020 at 06:48

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.