我的操作系统是CentOS Linux版本7.4.1708
首先,我为python安装anaconda。然后替换/ usr / bin / python中的默认python。
$ ll /usr/bin/python*
lrwxrwxrwx. 1 root root 7 Aug 15 03:40 /usr/bin/python -> python2
lrwxrwxrwx. 1 root root 9 Aug 9 22:10 /usr/bin/python3 -> python3.6
lrwxrwxrwx. 1 root root 29 Aug 9 22:10 /usr/bin/python2.7 -> /root/anaconda2/bin/python2.7
lrwxrwxrwx. 1 root root 29 Aug 9 21:59 /usr/bin/python3.6 -> /root/anaconda3/bin/python3.6
lrwxrwxrwx. 1 root root 9 Aug 8 23:49 /usr/bin/python2 -> python2.7
Python 2.7.15 |Anaconda, Inc.| (default, May 1 2018, 23:32:55)
[GCC 7.2.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
所以我不能再使用yum。
$ yum
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
No module named yum
Please install a package which provides this module, or
verify that the module is installed correctly.
It's possible that the above module doesn't match the
current version of Python, which is:
2.7.15 |Anaconda, Inc.| (default, May 1 2018, 23:32:55)
[GCC 7.2.0]
If you cannot solve this problem yourself, please go to
the yum faq at:
http://yum.baseurl.org/wiki/Faq
我尝试将vi /usr/bin/yum
的第一行修复为任何其他python路径。
但这不起作用。
另外,我正在尝试像这样重新安装python * .rpm:
rpm -ivh python-tools-2.7.5-68.el7.x86_64.rpm python-2.7.5-68.el7.x86_64.rpm python-libs-2.7.5-68.el7.x86_64.rpm tkinter-2.7.5-68.el7.x86_64.rpm
并重新安装yum*.rpm
(今天我下载了很多*.rpm
...)
但是,仍然无法正常工作。
有人帮我吗?谢谢!
答案 0 :(得分:1)
最近在CentOS7上使用Yum3.4.3,Python2.7.5遇到了这个问题,
[root @ centos64b build]#yum list导入时出现问题 运行yum所需的Python模块之一。错误导致 这个问题是:
没有名为yum的模块
请安装提供此模块的软件包,或验证是否 该模块已正确安装。
上述模块可能与当前版本不匹配 Python,它是: 2.7.5(默认值,2018年4月11日,07:36:10)[GCC 4.8.5 20150623(Red Hat 4.8.5-28)]
如果您自己不能解决此问题,请转到yum常见问题解答 在:http://yum.baseurl.org/wiki/Faq
虽然在遇到此问题之前我没有更新Python。最后,发现在sys.path中未设置python site-packages libpath,因此这里的解决方法是在/ usr / bin / yum Python脚本中将site-packages libpath附加到sys.path。然后,yum可以正常工作。
[build@centos64b ~]$ more /usr/bin/yum
#!/usr/bin/python
import sys
sys.path.append('/usr/lib/python2.7/site-packages')
sys.path.append('/usr/lib64/python2.7/site-packages')
答案 1 :(得分:0)
我在 Superuser StackExchange
上找到了针对该问题的两种解决方案删除新安装的python
使用正确的版本(x.y)链接python
答案 2 :(得分:0)
使用{p>重新安装python
rpm -ivh --force python-2.7.5-68.el7.x86_64.rpm
为什么起作用。通常,rpm可以容忍其他软件包的文件。以您的情况来看,它没有创建链接文件,因此在安装时跳过了它们。来自man rpm
我们可以找到
--force
Same as using --replacepkgs, --replacefiles, and --oldpackage.
--replacefiles
Install the packages even if they replace files from other, already installed, packages.
使用这些选项rpm
并不关心事实,即旧文件是由其他人创建的。
P.S。一些提示:切勿删除/usr/bin
中的更改文件。 /bin
是链接的最佳选择。最好将bin
目录添加到$PATH
,方法是将以下内容添加到.bash_profile
:
$PATH=/root/anaconda2/bin/python2.7:$PATH
因此,如果出现问题,只需从.bash_profile
中删除该行即可。
再说一遍:总是进行备份,尤其是在处理系统文件时。