2013-04-29 97 views
3

我意外地替换了位于/ usr/local/bin /的python二进制文件。从那以后,我无法运行任何python脚本,甚至不能运行python的交互模式。我的python不起作用

$ python 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/site.py", line 562, in <module> 
    main() 
    File "/usr/lib/python2.7/site.py", line 544, in main 
    known_paths = addusersitepackages(known_paths) 
    File "/usr/lib/python2.7/site.py", line 271, in addusersitepackages 
    user_site = getusersitepackages() 
    File "/usr/lib/python2.7/site.py", line 246, in getusersitepackages 
    user_base = getuserbase() # this will also set USER_BASE 
    File "/usr/lib/python2.7/site.py", line 236, in getuserbase 
    USER_BASE = get_config_var('userbase') 
    File "/usr/lib/python2.7/sysconfig.py", line 558, in get_config_var 
    return get_config_vars().get(name) 
    File "/usr/lib/python2.7/sysconfig.py", line 457, in get_config_vars 
    _init_posix(_CONFIG_VARS) 
    File "/usr/lib/python2.7/sysconfig.py", line 303, in _init_posix 
    makefile = _get_makefile_filename() 
    File "/usr/lib/python2.7/sysconfig.py", line 297, in _get_makefile_filename 
    return os.path.join(get_path('platstdlib').replace("/usr/local","/usr",1), "config" + (sys.pydebug and "_d" or ""), "Makefile") 
AttributeError: 'module' object has no attribute 'pydebug' 

我看到了相关的问题“AttributeError的:‘模块’对象有没有属性‘pydebug’”的错误,但我仍然无法弄清楚如何来解决这个问题。

当我尝试重新安装将出现相同的错误:

$ sudo apt-get install python2.7-minimal 
[sudo] password for : 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
python2.7-minimal is already the newest version. 
The following packages were automatically installed and are no longer required: 
    libgsasl7 libmailutils2 libntlm0 
Use 'apt-get autoremove' to remove them. 
0 upgraded, 0 newly installed, 0 to remove and 402 not upgraded. 
4 not fully installed or removed. 
After this operation, 0 B of additional disk space will be used. 
Do you want to continue [Y/n]? Y 
Setting up python2.7-minimal (2.7.1-5ubuntu2.2) ... 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/site.py", line 562, in <module> 
    main() 
    File "/usr/lib/python2.7/site.py", line 544, in main 
    known_paths = addusersitepackages(known_paths) 
    File "/usr/lib/python2.7/site.py", line 271, in addusersitepackages 
    user_site = getusersitepackages() 
    File "/usr/lib/python2.7/site.py", line 246, in getusersitepackages 
    user_base = getuserbase() # this will also set USER_BASE 
    File "/usr/lib/python2.7/site.py", line 236, in getuserbase 
    USER_BASE = get_config_var('userbase') 
    File "/usr/lib/python2.7/sysconfig.py", line 558, in get_config_var 
    return get_config_vars().get(name) 
    File "/usr/lib/python2.7/sysconfig.py", line 457, in get_config_vars 
    _init_posix(_CONFIG_VARS) 
    File "/usr/lib/python2.7/sysconfig.py", line 303, in _init_posix 
    makefile = _get_makefile_filename() 
    File "/usr/lib/python2.7/sysconfig.py", line 297, in _get_makefile_filename 
    return os.path.join(get_path('platstdlib').replace("/usr/local","/usr",1), "config" + (sys.pydebug and "_d" or ""), "Makefile") 
AttributeError: 'module' object has no attribute 'pydebug' 
dpkg: error processing python2.7-minimal (--configure): 
subprocess installed post-installation script returned error exit status 1 
dpkg: dependency problems prevent configuration of python2.7: 
python2.7 depends on python2.7-minimal (= 2.7.1-5ubuntu2.2); however: 
    Package python2.7-minimal is not configured yet. 
dpkg: error processing python2.7 (--configure): 
dependency problems - leaving unconfigured 
dpkg: dependency problems prevent configuration of libpython2.7: 
libpython2.7 depends on python2.7 (= 2.7.1-5ubuntu2.2); however: 
    Package python2.7 is not configured yet. 
dpkg: error processing libpython2.7 (--configure): 
dependency problems - leaving unconfigured 
dpkg: dependency problems prevent configuration of python2.7-dev: 
python2.7-dev depends on python2.7 (= 2.7.1-5ubuntu2.2); however: 
    Package python2.7 is not configured yet. 
python2.7-dev depeNo apport report written because the error message indicates its a followup error from a previous failure. 
                                  No apport report written because the error message indicates its a followup error from a previous failure. 
                      No apport report written because MaxReports is reached already 
                                     nds on libpython2.7 (= 2.7.1-5ubuntu2.2); however: 
    Package libpython2.7 is not configured yet. 
dpkg: error processing python2.7-dev (--configure): 
dependency problems - leaving unconfigured 
Errors were encountered while processing: 
python2.7-minimal 
python2.7 
libpython2.7 
python2.7-dev 
E: Sub-process /usr/bin/dpkg returned an error code (1) 
+0

为什么不重新安装Python? – Isaac 2013-04-29 16:24:21

+1

我已经试过并且不起作用 – Geparada 2013-04-29 16:25:07

+0

你的操作系统是什么? – 2013-04-29 16:26:16

回答

4

的问题是,你打/usr/local/bin/python代替/usr/bin/python

您可以将其移出的方式运行类似...

mv /usr/local/bin/python /usr/local/bin/python.old 

...为根,或者如果你确定你不需要它,那么就删除它与...

rm /usr/local/bin/python 

如果仍然庆典尝试运行/usr/local/bin/python和运行type python打印...

python is hashed (/usr/local/bin/python) 

...然后执行hash -r来清除哈希表。

这并不是/usr/bin/python复制到/usr/local/bin/python一个好主意,否则你可能会得到问题的下一次你apt-get upgrade更新蟒蛇,即它会更新/usr/bin/python,但/usr/local/bin/python仍然会被默认运行。

+0

是的,这是问题......但是当我mv/usr/local/bin/python /usr/local/bin/python.old bash:/ usr/local/bin/python:没有这样的文件或目录...我怎么能告诉bash使用/ usr/bin/python insted/usr/local/bin/python? – Geparada 2013-04-29 16:47:17

+0

cp/usr/bin/python/usr/local/bin /是简单的解决方案。谢谢!!! – Geparada 2013-04-29 16:49:35

+1

@Geparada如果你确定'/ usr/local/bin/python'没有文件,那么使用'hash -r'来清除bash哈希表,并且它应该选择'/ usr/bin/python' 。 – Aya 2013-04-29 16:49:41

0

您必须重新安装。 这是一个更好的解决方案。 这是我在Ubuntu上使用终端的最佳安装。 尝试: Install Python and cherrypy

而且你看看答案在这个问题上

Installation python

+0

当我尝试这样做时,我有同样的错误: “AttributeError:'模块'对象没有属性'pydebug'” – Geparada 2013-04-29 16:31:00

+0

尝试安装如何在答案上的宠物 – 2013-04-29 16:41:12

2

貌似这个事做与调试特制一个Python版本。

我建议你重新安装Python和apt-get的:

sudo apt-get install --reinstall python2.7 

你的问题似乎同样喜欢this SO question about sys.pydebug