簡體   English   中英

運行 tox 時“沒有名為 pip 的模塊”

[英]'no module named pip' when running tox

我有一個簡單的 tox 文件,運行基本的 python 單元測試,我試圖針對多個 python 版本運行它。

[tox]
envlist = py36, py37

[testenv]
setenv =
    PYTHONPATH = {toxinidir}

我使用 pyenv 來管理環境。 我的pyenv global設置為 system. 我運行pyenv install 3.5.4 3.6.4來安裝和pyenv local ${version}來加載它們。

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

全毒輸出

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

我檢查了 python 位置,看到每個 python 文件夾中都有一個 pip 二進制文件。 我還嘗試將 pip 添加到 tox 文件的require部分,在deps設置上設置 pip 並設置pip_pre true 以查看它是否會安裝最新版本,但每次都得到相同的結果。 我沒有看到與 google-fu 或 Stack 的任何其他匹配項,所以我假設我在某處犯了用戶錯誤......

pyenv 對我的路徑做了一些奇怪的事情。 我不得不停用 virtualenv 然后重新激活它。 現在 pyenv 適用於我需要的所有 python 3 版本。 對於將來閱讀本文的任何人,當我對這個問題進行研究時,它通常與某種路徑問題有關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM