2013-02-10 31 views
11

Tôi đã sử dụng bản dựng trong một thời gian mà không gặp bất kỳ vấn đề nào, trên thực tế tôi đã làm hôm qua mà không gặp bất kỳ sự cố nào.zc.buildout đã ngừng hoạt động: ImportError: Không có mô-đun nào có tên apport.fileutils

Nhưng hiện nay tất cả các dự án của tôi đều không được xây dựng. Tôi đã thử trên hai máy trạm Ubuntu khác nhau với cùng một kết quả.

Đây là lỗi tôi nhận được:

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' 

Nó phàn nàn rằng không có mô-đun apport.fileutils tên .. nhưng tôi nhận được không phải ngoại lệ khi tôi chạy python và import nó:

from apport.fileutils import likely_packaged, get_recent_crashes 

Trả lời

24

2.0.0 vừa được phát hành. Bootstrap.py cũ không tương thích với 2.0.0 nhưng tải nó theo mặc định. Bạn có thể lấy v2 bootstrap.py từ here hoặc sử dụng mã bên dưới nếu bạn muốn gắn với phiên bản cũ.

python bootstrap.py -v 1.7.0 

chỉnh sửa: phiên bản cũ hơn của v1 bootstrap.py không cho phép phiên bản buộc. Phiên bản cập nhật here.

+0

Cảm ơn bạn đã hoạt động. Tôi ban đầu mặc dù tôi sẽ nâng cấp buildout lên 2.0 .. nhưng nó dường như phá vỡ rất nhiều phần mở rộng vì vậy tôi sẽ gắn bó với 1.7 trong một thời gian tôi nghĩ. –

+0

Tôi chỉ gặp vấn đề tương tự, cảm ơn câu trả lời hữu ích của bạn! Cũng liên quan đến: http://stackoverflow.com/questions/14817138/zc-buildout-2-0-0-release-somehow-ends-up-breaking-plone-3-3-buildouts –

0

Câu hỏi + câu trả lời là từ năm 2013. Gần đây, tôi (2015) thấy nó xảy ra lần nữa.

Vấn đề là gói python-apport của ubuntu cài đặt tệp /usr/lib/python2.7/dist-packages/apport_python_hook.py ghi đè sys.excepthook. Nó chắc chắn rằng tracebacks trăn được đưa vào cơ chế báo cáo lỗi "apport" của ubuntu.

Điều đó không phải là vấn đề. Nhưng bootstrap.py hạn chế đường dẫn python, sao cho móc không thể nhập apport nữa ...

Vì vậy, nếu xảy ra lỗi trong khi khởi động, ngoại lệ không thể nhập lần thứ hai vì không thể nhập apport.

Giải pháp có thể là sudo apt-get remove python-apport. Đó là ít nhất những gì chúng tôi đã làm trên máy chủ (nơi có apport không có ý nghĩa trong mọi trường hợp).

Các vấn đề liên quan