误删"usr/lib/python2.7",如何修复?

0 投票
1 回答
3725 浏览
提问于 2025-04-18 18:19

在编辑Django应用时,我不小心删除了“usr/lib/python2.7”文件夹里的python2.7。

之后,每次使用时,我总是收到以下信息:

找不到平台独立的库 <prefix> 找不到平台相关的库 <exec_prefix> 请考虑将$PYTHONHOME设置为<prefix>[:<exec_prefix>] 导入错误:没有名为site的模块

--- 操作系统是Ubuntu12.04 ----

我尝试查看了这些页面:

http://bugs.python.org/issue6060,

Python/IPython 导入错误:没有名为site的模块

我还尝试使用

sudo apt-get install --reinstall 来重新安装python2.7.8版本。

现在我的PYTHONPATH看起来是这样的:

PYTHONDIR= usr/local/lib/python2.7,

PYTHONHOME= usr/local/lib/python2.7,

PYTHONPATH=

但我仍然收到“导入错误:没有名为site的模块”的信息。

如果我尝试输入

Import sys

我会收到信息“导入:无法打开图像`sys':@ error/blob.c/OpenBlob/2587。”

我想知道我现在的问题是什么,以及如何解决它?

非常感谢,

1 个回答

3

首先,要小心 - 即使是限制性地 - 也要注意你以管理员身份运行的程序。普通用户是无法修改 /usr/lib 目录下的东西的,这样做是有原因的,因为这会破坏系统。

其次,你可以通过以下命令找出哪些软件包包含那个目录里的内容:

$ dpkg -S /usr/lib/python2.7
python-qgis, python-gdal, python-psycopg2, python-pyspatialite, youtube-dl, virtualbox, duplicity, bzr-git, bzr-builddeb, debconf, ipython, libpython2.7-minimal:i386, libpython2.7-dev:i386, tahoe-lafs, seascope, samba, qbzr, python2.7, python-zope.interface, python-zfec, python-yaml, python-xdg, python-xapian, python-wxversion, python-wxgtk2.8, python-ws4py, python-webob, python-wadllib, python-vipscc, python-utidylib, python-usb, python-urllib3, python-tz, python-twisted, python-twisted-words, python-twisted-web, python-twisted-runner, python-twisted-news, python-twisted-names, python-twisted-mail, python-twisted-lore, python-twisted-core, python-twisted-conch, python-twisted-bin, python-tk, python-tdb, python-talloc, python-support, python-subversion, python-sphinx, python-software-properties, python-six, python-sip, python-simplejson, python-simplegeneric, python-setuptools, python-setools, python-serial, python-sepolicy, python-sepolgen, python-semanage, python-selinux, python-secretstorage, python-scipy, python-samba, python-routes, python-roman, python-requests, python-repoze.lru, python-reportlab, python-reportlab-accel, python-renderpm, python-radare2, python-qt4, python-qt4-gl, python-qscintilla2, python-pyvorbis, python-pytools, python-pysqlite2, python-pyside.qtxml, python-pyside.qtwebkit, python-pyside.qtuitools, python-pyside.qttest, python-pyside.qtsvg, python-pyside.qtsql, python-pyside.qtscript, python-pyside.qtopengl, python-pyside.qtnetwork, python-pyside.qthelp, python-pyside.qtgui, python-pyside.qtdeclarative, python-pyside.qtcore, python-pyside.phonon, python-pyparsing, python-pyopencl, python-pygments, python-pygame, python-pycurl, python-pycryptopp, python-pyaudio, python-pyasn1, python-poppler-qt4, python-ply, python-pkg-resources, python-pivy, python-pip, python-pil, python-pexpect, python-paramiko, python-pam, python-openssl, python-opengl, python-opencv, python-ogg, python-oauthlib, python-oauth, python-numpy, python-ntdb, python-newt, python-nevow, python-networkx, python-netifaces, python-mysqldb, python-musicbrainz, python-mock, python-mechanize, python-markupsafe, python-markdown, python-mako, python-magic, python-lxml, python-libxml2, python-ldb, python-lazr.uri, python-lazr.restfulclient, python-launchpadlib, python-keyring, python-jinja2, python-ipy, python-imaging, python-httplib2, python-html5lib, python-gtk2, python-gst0.10, python-gst0.10-rtsp, python-gpgme, python-gobject-2, python-glade2, python-gi, python-freenect, python-foolscap, python-feedparser, python-fastimport, python-eyed3, python-enchant, python-egenix-mxtools, python-egenix-mxdatetime, python-ecdsa, python-dulwich, python-docutils, python-docopt, python-dnspython, python-distro-info, python-distlib, python-decorator, python-debian, python-dbus, python-dateutil, python-cssutils, python-cssselect, python-crypto, python-configobj, python-colorama, python-collada, python-cherrypy3, python-chardet, python-bzrlib, python-bluez, python-beautifulsoup, python-audit, python-apt, python-apsw, policycoreutils, mercurial, mercurial-common, lsb-release, iotop, hugin-tools, hplip, frescobaldi, libpython2.7:i386, libpython2.7-stdlib:i386, dblatex, cython, cfv, bzr-upload, bzr-search, bzr-pipeline, bzr-loom, bzr-explorer: /usr/lib/python2.7

(是的,结果列表会非常长。) 知道了这个列表后,我们可以请求重新安装这些软件包:

$ sudo apt-get install --reinstall `dpkg -S /usr/lib/python2.7 | sed -e s/,//g -e 's/: .*$//'`

我为这个很长的命令行道歉;这里的 sed 命令是用来整理 dpkg 的输出,只留下我们想要重新安装的软件包列表。这种方法可能会帮助你解决你提到的具体问题,但如果这种情况发生一次,就说明你可能对其他更改的后果不太清楚。你可能需要放慢脚步,更多地了解你系统的结构。

PYTHON* 这样的变量对你帮助不大,除非你在其他地方有一个完全匹配的 Python 版本,而我们在 Linux 发行版中通常会避免这种情况,因为我们通常有一个可用(虽然功能有限)的软件包管理系统。

最后,我觉得这个问题更像是超级用户的问题,而不是 Stack Overflow 上的问题。

撰写回答