如何使系统看到在Ubuntu 12.04上新鲜安装的Python 2.7.8(精确)

简介:在我的Ubuntu机器上安装了更多的Python之后,有几个工具不能工作。 为什么?

我唯一使用Linux的经验是Ubuntu 12.04,到目前为止,我主要依靠apt-get来安装软件包(即使用./configure && make && sudo make install的经验很less)。

更新的版本的python似乎不可以通过apt-get,所以我下载安装Python 2.7.8与你的典型

./configure && make && sudo make install 

现在,我基本上没有包pipe理的知识,所以考虑到这一点…

无论出于什么原因,我不得不用手工replace/ usr / bin中的python符号链接以适当的引用新的二进制文件(我认为安装会这样做)。 顺便说一下,我的机器上仍然有python 2.7.3。

 cd /usr/bin sudo rm python ln -s /location/of/new/python python 

现在,在准备写一个完全不同的问题,我想确认我的Ubuntu版本

 lsb_release -a 

但是我明白了

 Traceback (most recent call last): File "/usr/bin/lsb_release", line 26, in <module> import lsb_release ImportError: No module named lsb_release 

我知道这将继续发生很多实用程序,直到我可以告诉我的系统以某种方式查看Ubuntu安装(apt-get)python模块。

例如,我安装了pip并正在工作,但是现在如果我input

 pip install lsb_release Traceback (most recent call last): File "/usr/bin/pip", line 5, in <module> from pkg_resources import load_entry_point ImportError: No module named pkg_resources 

有没有一种简单(或不)的方法来解决所有这些依赖性问题?

在安装了tk-dev后,我现在已经使用新的Python 2.7.8来运行(运行)了IDLE

 sudo apt-get install tk-dev 

(它以前没有这一步工作)

但是如果我用IDLE打开一个python脚本, 右键点击并去空闲它不能看到我刚刚build立的我的wxPython(wx)库。 我也从terminal有这个问题,但根据解决它

https://sites.google.com/site/opensourceconstriubtions/ettl-martin-1/tutorials/how-to-solve-following-error-when-starting-a-wxwidgets-application-libwx_gtk2u_adv-3-x-so- 0-不能开-共享对象的文件没有这样的文件,或目录

当我右键点击一个python文件并去空闲,我怎么能得到IDLE看到的wx模块? 如果我从terminal运行IDLE,它可以看到wx模块(即import wx工程)。

我知道这个问题到处都是,但我不确定从哪里开始。

谢谢。

其他可能相关的信息:

 which python /usr/bin/python python --version Python 2.7.8 python -m site sys.path = [ '/usr/lib/python2.7', '/usr/local/lib/python27.zip', '/home/jpf/src/Python-2.7.8/Lib', '/home/jpf/src/Python-2.7.8/Lib/plat-linux2', '/home/jpf/src/Python-2.7.8/Lib/lib-tk', '/home/jpf/src/Python-2.7.8/Lib/lib-old', '/home/jpf/src/Python-2.7.8/build/lib.linux-i686-2.7', '/home/jpf/.local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/site-packages', '/usr/local/lib/python2.7/site-packages/wx-3.0-gtk2', '/usr/local/lib/python2.7/dist-packages', '/usr/local/lib/python2.7/dist-packages/wx-2.9.4-gtk2', ] 

(这正确地有两个版本的wxPython安装。)但是,这是它看起来不一致的地方…

 locate lsb_release.py /usr/lib/python2.7/dist-packages/lsb_release.py /usr/lib/python2.7/dist-packages/lsb_release.pyc /usr/lib/python3/dist-packages/lsb_release.py /usr/share/pyshared/lsb_release.py 

python模块lsb_release的位置是/usr/lib/python2.7/dist-packages而python似乎是在/usr/local/lib/python2.7/dist-packages进行search。 我做错了什么?

部分答案

开始理解这个问题,正如所料,这是由于我对Linux和Ubuntu的工作原理的无知。

在Ubuntu中,pipe理员通过sudo apt-get install python-module来安装给定的python相关的python-module ,它位于/usr/local/lib/pythonX.Y/dist-packages 。 当pipe理员通过相同的方法安装python 程序时 ,它似乎位于/usr/lib/pythonX.Y/dist-packages 。 例如,当我安装了我通过sudo apt-get install python-pip 。 这创build了目录/usr/lib/python2.7/dist-packages/pip 。 当我用pip安装xlwt时,创build了一个目录/usr/local/lib/pythonX.Y/dist-packages/xlwt 。 这可能并不是一条硬性的规则,但是至less安装了apt-get或pip的python模块似乎都安装在/usr/local/lib/pythonX.Y/dist-packages

这与site-packages位置相反, /usr/local/lib/pythonX.Y/site-packages site-packages/usr/lib/pythonX.Y/site-packages不存在),当pipe理员像我使用wxPython 3.0一样手动安装软件包(请参阅上面的/usr/local/lib/python2.7/site-packages/wx-3.0-gtk2 ,与/usr/local/lib/python2.7/dist-packages/wx-2.9.4-gtk2 ,我安装了特殊的指令集成到Ubuntu的包pipe理器中)。

这在这里描述:

dist-packages和site-packages有什么区别?

相关的是这里描述的/usr/lib/usr/local/lib之间的区别:

/usr/local/lib/python2.6和/usr/lib/python2.6有什么区别?

新安装的Python 2.7.8没有“看到”目录/usr/lib/python2.7/dist-packages/ ,其中包含必要的模块lsb_release因为它没有设置为通过包pipe理器(通过apt-get )。 由于我手动安装(即使用./configure && make && make install ),它只看到/usr/local/lib/python2.7/

我会消除这个问题,但也许这将有助于其他一些新手。 pipe理员请随时擦除,如果适当的话。