简介:在我的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理员请随时擦除,如果适当的话。