巨蟒3.6-venv劫持皮普。有什么方法可以防止这种情况发生? [英] python3.6-venv hijacks pip. what is a way to prevent this?

查看:40
本文介绍了巨蟒3.6-venv劫持皮普。有什么方法可以防止这种情况发生?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在追踪安装失败。我有一个全新的ubuntu异种安装。我有几个不同的项目,每个项目都涉及到需要不同版本的python的依赖项,其中包括一个gnuradio项目,它似乎合理地预期pip指向python2.7。以下是我运行的第一部分:

$ sudo apt-get update
$ sudo apt-get -yq upgrade
$ sudo apt-get -yq install python-pip
$ sudo pip install --upgrade pip
$ sudo apt-get install -yq python3-pip
$ sudo pip3 install --upgrade pip
$ sudo apt-get update
$ sudo apt-get -yq upgrade
$ sudo apt-get -yq install python-dev python3-dev
$ sudo apt-get install --fix-missing python-apt
$ sudo pip install numpy scipy matplotlib pybombs virtualenv
$ sudo apt-get -yq install build-essential libffi-dev libssl-dev python3-setuptools
$ sudo pip3 install --upgrade setuptools wheel
$ sudo pip3 install numpy scipy matplotlib virtualenv
$ sudo add-apt-repository ppa:deadsnakes/ppa
$ sudo apt-get install python3.6
$ sudo apt-get -yq install python3.6-venv python3.6-dev
$ sudo apt-get update
$ sudo apt-get upgrade

到目前为止没有投诉,当我检查pip和pip3时,它们指向我希望它们指向的位置:

$ pip -V
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)
$ pip3 --version
pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5)

现在我为python3.6创建了一个虚拟环境,进入后,pip如期指向python3.6,我又安装了几个包,然后退出虚拟环境,突然pip指向python3.5

$ mkdir projvenv
$ python3.6 -m venv /home/username/projvenv/
$ source /home/tom/vertexprojvenv/bin/activate
(projvenv) $ pip -V
pip 9.0.1 from /home/tom/projvenv/lib/python3.6/site-packages (python 3.6)
(projvenv) $ pip install numpy scipy matplotlib
(projvenv) $ deactivate
$ pip -V
pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5)

我看过this question,它似乎解决了一个纯粹的蟒蛇问题,而解决方案不适用于我的情况。This discussion更切中要害,并且指向pip的问题。对于我来说,这个特定的bug至少不完全是现在发生的事情,因为我可以升级指向python2.7的pip和指向python3.5的pip3,而且pip劫持不是由升级启动的。我们非常感谢在这个问题上发表的任何智慧。

(编辑)

$ which pip
/usr/local/bin/pip
$ head -1 `which pip`
#!/usr/bin/python3

推荐答案

恢复/usr/local/bin/pip中的Shebang行-使其#!/usr/bin/python2

PS。从形式上讲,这并不是一个完整的答案,因为问题是"如何预防?"我不知道是什么程序改变了Shebang行,但我怀疑是虚拟环境。

这篇关于巨蟒3.6-venv劫持皮普。有什么方法可以防止这种情况发生?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆