2013-02-10 144 views
11

我一直在使用buildout很长一段时间没有任何问题,事实上我昨天没有任何问题。zc.buildout停止工作:ImportError:没有名为apport.fileutils的模块

但是,就像今天我所有的项目都没有建立起来一样。我试着在两个不同的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 

回答

24

2.0.0刚刚发布。旧的bootstrap.py与2.0.0不兼容,但默认下载。您可以从here获得v2 bootstrap.py,或者如果您想要使用旧版本,请使用下面的代码。

python bootstrap.py -v 1.7.0 

编辑:较早版本的v1 bootstrap.py不允许版本强制。最新版本here确实如此。

+0

谢谢你,工作。我最初虽然我会升级到2.0 ..但它似乎打破了很多扩展,所以我会坚持1.7一段时间,我认为。 – 2013-02-11 02:21:43

+0

我刚碰到同样的问题,谢谢你的帮助!也有关于:http://stackoverflow.com/questions/14817138/zc-buildout-2-0-0-release-somehow-ends-up-breaking-plone-3-3-buildouts – 2013-02-12 14:31:28

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都没有意义)。

相关问题