zc.buildout停止工作:导入错误:没有模块名为apport.fileutils(zc.bui

2019-08-16 21:11发布

我一直在使用扩建相当长的一段时间,现在没有任何问题,其实我昨天做的,没有任何问题。

但是,今天我所有的项目不能扩建。 我试了两个不同的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

Answer 1:

2.0.0刚刚释放。 老bootstrap.py不符合2.0.0,但它下载默认兼容。 您可以从获得V2 bootstrap.py 这里 ,或者如果你想坚持使用旧版本使用下面的代码。

python bootstrap.py -v 1.7.0

编辑:V1 bootstrap.py的旧版本不允许版本强迫。 向上的最新版本在这里做。



Answer 2:

问题+答案是从2013年开始我最近(2015年)看到它再次发生。

问题是,Ubuntu的python-apport包安装一个/usr/lib/python2.7/dist-packages/apport_python_hook.py重写文件sys.excepthook 。 它可以确保蟒蛇回溯送入Ubuntu的“Apport会”错误报告机制。

这本身是没有问题的。 但bootstrap.py限制Python路径,从而钩无法导入apport了...

因此,如果引导运行过程中出现错误,一个异常被印刷,然后第二次失败的apport因为无法导入。

一个解决办法是sudo apt-get remove python-apport 。 这至少是我们做的服务器(其中有Apport会使得在任何情况下没有意义)上。



文章来源: zc.buildout stopped working: ImportError: No module named apport.fileutils