删除site.py后Python失败

TL;博士

我不小心删除了我的Python安装的site.py文件.现在,当试图启动Python时,它会抱怨,

ImportError: Couldn’t find the real ‘site’ module

我尝试从setuptools下载一个site.py,但这导致在__boot方法中围绕语句imp.load_module(‘site’,stream,path,descr)进行无限递归(第37行).

有没有办法解决这个问题而无需重新安装Python?什么是site.py文件应该做什么?

一些背景资料:

这是在我的主目录中安装了自定义Python的Linux服务器上(准确地说是〜/ nfs).服务器上还有其他Python安装(不是我的 – 这太乱了!)但是$PATH和$PYTHONPATH的设置方式是先找到我的安装.

至于为什么我删除了site.py文件:我尝试执行setuptools setup.py脚本,脚本告诉我删除该文件,因为它“不是由setuptools创建的”.我愚蠢地遵守了.

我怀疑这个原始错误消息是由setuptools实现不是我的事实引起的.

最佳答案
site module设置了你的python模块搜索路径和其他一些东西.这对python的正常运行有点关键.

您可以从python源存储库下载新副本:

>对于python 2.7
> python 3.2

对于其他python版本,通常URL为http://hg.python.org/cpython/file/*major*.*minor*/Lib/site.py以获取正确的标记版本,然后选择左侧的原始链接 – 手工菜单.

如果你从Ubuntu或Debian上的linux发行包中安装了python,那么这个文件已经被自定义了,你需要重新安装相应的python-minimal包.

点赞