Pip无法升级ubuntu 15.04中的内置包

时间:2015-05-19 16:38:43

标签: python python-2.7 ubuntu pip

我似乎无法升级已安装在Ubuntu 15.04中的软件包。 Pip仍然有效,将软件包安装到/usr/local/python2.7/dist-packages,但路径列在顶部/usr/python2.7/dist-packages,甚至PYTHONPATH也无法获得高于该行的内容。我相信这适用于较旧的Ubuntus。我一直试图在/usr/python/site.py找到一些东西,但它似乎做对了。添加-S确实会阻止非本地版本位于顶部。我相信,我已经在两台电脑上看到了这一点。

需要这样做的一些例子:更新以获得所需的功能/错误修复(对于PILLOW,在我的情况下),没有APT卸载一堆包列出该包作为要求的包。

编辑: 为了澄清,问题是:我想重新排序目录搜索顺序以恢复Ubuntu 14.10的行为。在许多系统上有更好的方法可以做到这一点,但是我想使用内置的apt包,只需要一个或两个(潜在的)新包,比如IPython等,而不是使用virtual-env和Anacoda(两者都是我在其他系统上使用)。看起来我想要的行为是记录在案的Debian行为,所以我不确定它为什么要重新排序路径。

这是演示问题的路径,注意PYTHONPATH变量位于中间,有两个git文件夹:

>>> sys.path
['',
'/usr/lib/python2.7/dist-packages', 
'/usr/local/lib/python2.7/dist-packages/requests-2.6.0-py2.7.egg', 
'/usr/local/lib/python2.7/dist-packages/octave_kernel-0.10.0-py2.7.egg',
'/home/username/git/maya',
'/home/username/git/udaq/pyUDAQ',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PILcompat', 
'/usr/lib/python2.7/dist-packages/gtk-2.0',
'/usr/lib/pymodules/python2.7', 
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
'/usr/lib/python2.7/dist-packages/wx-3.0-gtk2']

作为参考,我有一个运行14.04的匹配系统,它具有完全预期的行为。首先是两个PYTHONPATH目的地,然后是本地dist-packages之后的目标。{/ p>

2 个答案:

答案 0 :(得分:2)

点子中有一个-t switch。它允许您配置pip安装包的目录。

您可以在config file中设置目录,而不必在每次安装或升级软件包时指定目录

但通常,升级apt

安装的软件包是个坏主意

答案 1 :(得分:2)

使用 virtualenv

安装virtualenv

$ sudo apt-get install python-virtualenv

在MYENV目录中创建环境

$ virtualenv MYENV

激活当前shell中的环境(您的应用程序将在其启动脚本上也需要它)

$ . MYENV/bin/activate

使用位于MYENV目录(你拥有)的venv中的pip / python

(MYENV)$ pip ...  
相关问题