virtualenv中pip被覆盖无法使用,如何重装pip或关联pip3?
修复Virtualenv中pip被ffmpeg覆盖的问题
别慌,这种误覆盖文件的小失误很常见,咱们一步步来搞定它。首先得搞清楚为啥报错:你把ffmpeg替换了virtualenv里的pip程序,现在运行pip其实是在执行ffmpeg,它把pip的路径当成了要输出的文件,自然会报找不到合适输出格式的错。
下面给你两种靠谱的解决方法:
方法一:用Virtualenv内的Python重装pip
这个方法最直接,因为Python自带的ensurepip模块可以不依赖原有pip来安装/升级pip:
- 直接执行这条命令,用你的virtualenv里的Python调用ensurepip:
执行完后,你再跑/Users/tax/.virtualenvs/capstone/bin/python -m ensurepip --upgradewhich pip,应该就能回到原来的virtualenv路径了。 - 如果上面的命令因为某些原因失效(比如Python没带ensurepip),可以手动获取官方的get-pip.py,然后用环境内的Python运行它:
/Users/tax/.virtualenvs/capstone/bin/python get-pip.py
方法二:让pip3关联到Virtualenv内的Python
如果你的virtualenv里的pip3还完好,可以直接把它关联成默认的pip:
- 先激活你的virtualenv:
source /Users/tax/.virtualenvs/capstone/bin/activate - 激活后,要么直接用
python -m pip代替pip命令(这是最稳妥的调用方式,不会出错),要么创建软链接让pip指向pip3:ln -s /Users/tax/.virtualenvs/capstone/bin/pip3 /Users/tax/.virtualenvs/capstone/bin/pip
内容的提问来源于stack exchange,提问作者Yuri
相关产品推荐
相关产品推荐

