如何在AWS-Linux上完全重新安装python(不带yum)

2024-05-23 22:33:17 发布

您现在位置:Python中文网/ 问答频道 /正文

一系列不幸的事件(在dev中,谢天谢地)基本上毁了我的python2.7环境。/usr/bin中的可执行文件被破坏,一些RPM运行异常。所以我不再有一个可行的import yum环境。实际上,我启动了另一个EC2实例并复制了pythonexec,希望lib路径是相同的,但遗憾的是我得到了这个(使用-v运行):

( various imports then )
import gpg.core # precompiled from /usr/lib64/python2.7/site-packages/gpg/core.pyc
# /usr/lib64/python2.7/site-packages/gpg/gpgme.pyc matches 
/usr/lib64/python2.7/site-packages/gpg/gpgme.py
import gpg.gpgme # precompiled from /usr/lib64/python2.7/site-packages/gpg/gpgme.pyc
dlopen("/usr/lib64/python2.7/site-packages/gpg/_gpgme.so", 2);
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.7/site-packages/gpg/__init__.py", line 101, in <module>
  from . import core
File "/usr/lib64/python2.7/site-packages/gpg/core.py", line 34, in <module>
  from . import gpgme
File "/usr/lib64/python2.7/site-packages/gpg/gpgme.py", line 17, in <module>
_gpgme = swig_import_helper()
File "/usr/lib64/python2.7/site-packages/gpg/gpgme.py", line 16, in swig_import_helper
return importlib.import_module('_gpgme')
File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named _gpgme

这有点令人不安,因为_gpgme.sogpgme.py在同一个目录中,ldd在{}上看起来不错:

^{pr2}$

所以问题是:如何从AWS Linux映像(Linux version 4.9.75-25.55.amzn1.x86_64 (mockbuild@gobi-build-64013) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Fri Jan 5 23:50:27 UTC 2018)中强制删除python并重新安装它,而不需要yum,然后安装必要的yum位,使/usr/bin/yum(几乎就是import yum)正常工作?在

我知道这个问题是部分重复的,但我搜索了stackoverflow,一切似乎都回到了用yum安装python(我做不到)或者用pip安装模块(这一直在用yum安装pip!)或者非常宽泛地说rpm --erase vagueness,后跟rpm -i vagueness。在

我确实从源代码手动重建了一个python exec并运行它,但是它当然没有yum并且我似乎在pip search(我再次运行pip)中找不到任何可以生成我所寻找的yum模块的东西。你可能认为pip install yum就在那里,但是没有。也许我错过了什么。。。?在

我必须相信,也许有一种缓慢但稳定的方法来做到这一点。把/usr/bin/python2.7的执行官赶下台不应该造成我似乎有鸡和蛋的问题。。。在


Tags: pipinpycoreimportpackagesusrline
1条回答
网友
1楼 · 发布于 2024-05-23 22:33:17

在执行这些步骤之前,请下载python包-版本.rpm文件保存到同一台计算机上的本地目录。请参阅下面的第0步以获取准确的版本。在

0. Get the python package name
$ rpm -q python

1. Remove python forcefully
$ rpm -e  nodeps <python-package-name>

2. Install the rpm from local dir.
$ rpm -ivvh python-some-version.rpm

3. Retry your yum command
$ yum install <some package>

如果(3)失败,可以使用rpm重新安装yum,方法与重新安装python相同。在

从OP的评论来看,python似乎从来没有安装在系统上,否则依赖关系应该在系统上。如果在步骤2中,它请求依赖项,那么必须手动将它们下载到同一个本地目录,然后调用。在

^{pr2}$

或者先干一次

$ rpm -ivh  test *.rpm

相关问题 更多 >