2013-02-10 14 views
11

Używam buildouta już od jakiegoś czasu bez żadnego problemu, tak naprawdę zrobiłem to wczoraj bez żadnych problemów.zc.buildout przestał działać: ImportError: Brak modułu o nazwie apport.fileutils

Ale jak dziś wszystkie moje projekty nie budują. Próbowałem na dwóch różnych stacjach roboczych Ubuntu z tym samym wynikiem.

Jest to błąd otrzymuję:

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' 

on twierdzi, że nie ma moduł o nazwie apport.fileutils .. ale ja się nie wyjątek, gdy uruchamiam Python i importować go:

from apport.fileutils import likely_packaged, get_recent_crashes 

Odpowiedz

24

2.0.0 właśnie został wydany. Stary bootstrap.py nie jest zgodny z 2.0.0, ale domyślnie pobiera go. Możesz pobrać v2 bootstrap.py z here lub użyć poniższego kodu, jeśli chcesz zachować starszą wersję.

python bootstrap.py -v 1.7.0 

edycja: starsze wersje v1 bootstrap.py nie pozwalają na wymuszanie wersji. Zaktualizowana wersja here ma.

+0

Dziękuję, to zadziałało. Początkowo chciałem uaktualnić program do wersji 2.0, ale wydaje się, że łamie on wiele rozszerzeń, więc przez jakiś czas będę się trzymał wersji 1.7. –

+0

Po prostu wpadłem na ten sam problem, dziękuję za pomocną odpowiedź! Odnosi się również do: http://stackoverflow.com/questions/14817138/zc-buildout-2-0-0-release-somehow-ends-up-breaking-plone-3-3-buildouts –

0

Pytanie + odpowiedź pochodzi z 2013 roku. Niedawno (2015) zobaczyłem, że to się znowu dzieje.

Problem polega na tym, że pakiet ubuntu python-apport instaluje plik /usr/lib/python2.7/dist-packages/apport_python_hook.py, który zastępuje sys.excepthook. Zapewnia to, że Python tracebacks są przekazywane do mechanizmu raportowania błędów "apport" ubuntu.

To samo w sobie nie stanowi problemu. Ale bootstrap.py ogranicza ścieżkę Python, tak że hak nie może importować apport już ...

Więc jeśli wystąpi błąd podczas ładowania początkowego biegu, wyjątek jest drukowany, który następnie nie powiedzie się po raz drugi, ponieważ apport nie mogą być importowane.

Rozwiązaniem może być sudo apt-get remove python-apport. To przynajmniej to, co zrobiliśmy na serwerze (gdzie posiadanie aportu w ogóle nie ma sensu).

Powiązane problemy