2010-06-22 35 views
9

Đôi khi tôi chạy manage.py Tôi nhận được thông báo khó hiểu màu đỏ có ghi Error: cannot import name <Name> và không có gì khác.Gỡ lỗi khó hiểu "Lỗi: không thể nhập tên <Name>" trên Django

Rõ ràng, đây là một lỗi nhập khẩu hoặc cú pháp đơn giản và với một chút nhìn xung quanh, tôi thường có thể sửa chữa nó. Tuy nhiên, lần khác tôi phải mất một thời gian để tìm ra chính xác những gì tôi đã làm sai. Có cách nào để có được Django nhổ ra thêm thông tin trong tình huống này?

Trả lời

11

Đây là một vấn đề khó chịu. May mắn thay, nó đã được sửa (gần đây): xem this ticketthis patch.

Nếu bạn muốn chỉ cần cài đặt django địa phương của bạn (bạn đang chạy dưới virtualenv hoặc xây dựng, phải không?), Thay đổi thư mục gốc của thư mục django của bạn (thư mục README, INSTALL, v.v.) và chạy lệnh này:

curl "https://code.djangoproject.com/changeset/17197?format=diff&new=17197" | patch -p3\ 

vì vậy, nếu bạn chạy django thân> 17197, áp dụng các bản vá để django của bạn cài đặt (nó áp dụng cho django 1.2 cho tôi), hoặc chờ cho đến khi django 1.4, bạn sẽ có thể để làm điều này:

./manage.py shell --traceback 

Và bạn sẽ nhận được một dấu vết đầy đủ thay vì chỉ Lỗi: không thể nhập ...

Thì đấy!

+0

Có, virtualenv ftw. Cảm ơn. –

+0

+ 1-ed cho tham chiếu --traceback. Cảm ơn! –

-1

điều này xảy ra khi nhập vòng tròn xuất hiện, khi một mô hình phụ thuộc vào một mô hình khác và lần lượt chúng thử và nhập lẫn nhau trong khi thực thi mã.

Bạn có thể muốn dán hai mô hình đang gây ra sự cố.

Điều đó sẽ giúp chúng tôi gỡ lỗi.

Ngoài ra đôi khi nó có xu hướng xảy ra với các tín hiệu vì vậy nếu bạn có tệp tín hiệu, hãy dán quá.

+1

Như đã nêu trong câu hỏi, tôi biết rằng đó thường là lỗi nhập hoặc lỗi cú pháp. Tôi đã khắc phục vấn đề. Những gì tôi muốn là một cách hiệu quả để gỡ lỗi này trong thời gian tới nó sẽ xảy ra. –

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