我似乎无法升级已安装在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>
答案 0 :(得分:2)
答案 1 :(得分:2)
使用 virtualenv :
安装virtualenv
$ sudo apt-get install python-virtualenv
在MYENV目录中创建环境
$ virtualenv MYENV
激活当前shell中的环境(您的应用程序将在其启动脚本上也需要它)
$ . MYENV/bin/activate
使用位于MYENV目录(你拥有)的venv中的pip / python
(MYENV)$ pip ...