有段时间没有用 pip ,今天用到的时候报一串warning,还以为是什么了不得的故障,百度了一圈都没查到解决办法,卸载安装升级走了好几遍,差点以为pip要不能用了。。
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip. Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue. To avoid this problem you can invoke Python with '-m pip' instead of running pip directly. pip 21.2.4 from /Users/zhenghaibo1/Library/Python/3.9/lib/python/site-packages/pip (python 3.9)
接着想起来这段时间改过几次环境变量,中间一度导致 ls、vim 这种基础命令不可用,而电脑上安装了多个版本的 python ,之前使用 pip install 安装 pytest ,也不能直接在控制台使用 pytest 命令,根本原因就在于环境变量的配置,于是找到 pip 的安装路径,查看本地安装了哪些版本的 pip
结果很明显,本机的pip竟然有三个包,于是修改环境变量定向到 pip3(我查看了pip3和pip3.9的版本是一致的~)
alias pip="/{python安装路径}/bin/pip3"
之前遇到的 pytest 无法直接执行用的也是同样的办法解决,但因为当时找不到 pytest 安装路径,其实走了个邪路- -!
alias pytest="/usr/local/opt/python@3.9/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -m pytest"
可能很少有人把 python -m pytest 这样的执行语句直接写到环境变量里吧-。-
总之问题解决了~