zc.buildout 停止工作:ImportError:没有名为 apport.fileutils 的模块
我已经使用buildout一段时间了,一直没有遇到问题,实际上我昨天还顺利使用过。
但是今天我所有的项目都无法正常构建了。我在两台不同的Ubuntu工作站上尝试,结果都是一样的。
我遇到的错误是:
Initializing zc.buildout
Debug: Downloading http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
Traceback (most recent call last):
File "bootstrap.py", line 259, in <module>
import zc.buildout.buildout
File "/tmp/tmpNkVMXW/zc.buildout-2.0.0-py2.7.egg/zc/buildout/buildout.py", line 18, in <module>
import zc.buildout.easy_install
File "/tmp/tmpNkVMXW/zc.buildout-2.0.0-py2.7.egg/zc/buildout/easy_install.py", line 59, in <module>
pkg_resources.Requirement.parse('distribute')
AttributeError: 'NoneType' object has no attribute 'location'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/apport_python_hook.py", line 66, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
ImportError: No module named apport.fileutils
Original exception was:
Traceback (most recent call last):
File "bootstrap.py", line 259, in <module>
import zc.buildout.buildout
File "/tmp/tmpNkVMXW/zc.buildout-2.0.0-py2.7.egg/zc/buildout/buildout.py", line 18, in <module>
import zc.buildout.easy_install
File "/tmp/tmpNkVMXW/zc.buildout-2.0.0-py2.7.egg/zc/buildout/easy_install.py", line 59, in <module>
pkg_resources.Requirement.parse('distribute')
AttributeError: 'NoneType' object has no attribute 'location'
它提示找不到名为apport.fileutils的模块……但是当我运行python并导入它时却没有任何异常:
from apport.fileutils import likely_packaged, get_recent_crashes
2 个回答
0
这个问题和答案是2013年的内容。我最近(2015年)又遇到了同样的情况。
问题出在ubuntu的一个叫做python-apport
的包,它会安装一个文件/usr/lib/python2.7/dist-packages/apport_python_hook.py
,这个文件会覆盖掉sys.excepthook
。它的作用是把python的错误信息发送到ubuntu的“apport”错误报告系统。
这本身并不是问题。但是bootstrap.py
限制了python的路径,这样就无法再导入apport
了……
所以如果在启动过程中发生错误,就会打印出一个异常信息,但因为无法导入apport,导致第二次也失败了。
一个解决办法是运行sudo apt-get remove python-apport
。这也是我们在服务器上做的(因为在服务器上使用apport根本没有意义)。