2015-05-19 135 views
5

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

需要这样的一些示例:在没有APT的情况下更新以获取所需功能/错误修正(对于PILLOW来说),并卸载一系列将该软件包列为需求的软件包。

编辑: 澄清,问题是:我想重新排列目录搜索顺序来恢复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以上内置。

+4

我认为让'pip'和'apt'打包是一个非常糟糕的主意。更简洁的方法是改用'virtualenvs'。 – cel

+0

我希望能够将我的电脑交给跟随方向但不太了解的人。告诉他“ipython notebook”比告诉他首先激活虚拟env要容易得多。不过,这通常是个好主意。 –

+0

在这种情况下:切换到'anaconda'并将软件包安装到根环境中。然后''conda''和'pip'现在是你的软件包管理器和'apt'不会干涉的。 – cel

回答

2

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

您可以在config file设置目录和忘记每次指定它在安装或升级包

但通常这是一个坏主意,升级到通过apt

+0

我不想在'/ usr/python'中压缩包,我只想首先搜索'/ usr/local/python'。虽然谢谢! –

+1

@HenrySchreiner好了,但我很惊讶,因为'PYTHONPATH'的路径将被添加到标准解释器路径之前的'sys.path'中。你可以更新你的文章更多的信息?你如何修改'PYTHONPATH'和'print sys.path'输出的是什么? – Alik

+0

@HenrySchreiner [相关文件链接](https://docs.python.org/2/tutorial/modules.html#the-module-search-path) – Alik

2

使用安装的virtualenv包:

安装的virtualenv

$ sudo apt-get install python-virtualenv 

在MYENV目录中创建环境,当前壳

$ virtualenv MYENV 

激活环境(您的应用程序将需要这个,以及它的启动脚本)从VENV位于MYENV目录

$ . MYENV/bin/activate 

使用PIP /蟒蛇(你自己)

(MYENV)$ pip ... 
+0

如果你使用的是Ubuntu和16.04或更新版本,你可能需要'sudo apt-get install virtualenv'而不是'python-virtualenv' –

相关问题