
$pip install --user --upgrade six
这正确地在我的主目录中安装了六个最新版本(1.4.1).但是,当我加载刚刚安装的软件包时,python选择在系统范围内安装的版本:
$python -c "import six; print six; print six.__version__" <module 'six' from '/usr/lib/python2.7/dist-packages/six.pyc'>1.2.0
这在我看来是奇怪的行为;应首选用户手动安装的软件包.我在Arch linux上尝试过相同的过程,首先加载用户站点包.我的sys.path:
$python -c "import sys; print sys.path" ['','/home/jostein/.local/lib/python2.7/site-packages/enaml-0.5.1-py2.7.egg','/usr/lib/python2.7/dist-packages','/home/jostein/Programming/scikit-image','/home/jostein/Programming/reconstruct','/home/jostein/Programming/ptychography','/home/jostein/Programming','/home/jostein','/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','/home/jostein/.local/lib/python2.7/site-packages','/usr/local/lib/python2.7/dist-packages','/usr/lib/python2.7/dist-packages/PILcompat','/usr/lib/python2.7/dist-packages/gst-0.10','/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/ubuntuone-clIEnt','/usr/lib/python2.7/dist-packages/ubuntuone-control-panel','/usr/lib/python2.7/dist-packages/ubuntuone-couch','/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol','/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']
/usr/lib/python2.7/dist-packages出现在与用户相关的任何内容之前,这可能是导致问题的原因.
有没有人知道在ubuntu上允许用户安装的软件包优于系统级安装的好方法?
解决方法 在用户包之前有dist包实际上有意义恕我直言.但无论如何,你有两种选择,一种是坏的,一种是正确的.糟糕的是重新定义PYTHONPATH环境变量,以便在站点范围的包之前放置本地包的目录.这很简单,但是当系统中断时不要抱怨,因为你用一些不兼容的版本遮蔽了一个关键包.
在不破坏任何东西的情况下尝试特定版本的软件包的正确方法当然是使用virtualenv.
总结以上是内存溢出为你收集整理的python:用户站点中的包不覆盖ubuntu上的dist-packages全部内容,希望文章能够帮你解决python:用户站点中的包不覆盖ubuntu上的dist-packages所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)