2013-07-31 32 views
7

Tôi có cấu trúc thư mục tương tự.Tham chiếu chưa được giải quyết khi nhập từ gói con anh chị em với

main.py 
pack 
    |___sub_pack1 
       |__a.py 
    |___sub_pack2 
       |__b.py 

Bây giờ bên main.py (đó là chương trình chính của tôi mà tôi thực hiện) Tôi đang nhập khẩu như theo

from pack.sub_pack1 import a 

tốt Làm việc.

Bên a.py tôi nhập khẩu như theo

from pack.sub_pack2 import b 

Tại thời điểm pycharm này nhấn mạnh trên mã như màu đỏ và thông báo cho tôi "gói tài liệu tham khảo không được giải quyết".

Bây giờ mã của tôi đang hoạt động tốt. Tôi tò mò tại sao pycharm coi đó là lỗi và tôi có thể làm gì để tránh điều đó.

+0

Có vẻ như PyCharm vì một lý do nào đó mong bạn có một '__init __. Py' trong gói cho nhập khẩu không phải cục bộ để hoạt động. Đó là bắt buộc về mặt kỹ thuật đối với các gói Python nhưng không thực sự được xác nhận bởi trình thông dịch, và dường như được thực hiện không nhất quán trong khi PyCharm tìm kiếm nơi để giải quyết nhập khẩu. – millimoose

+0

Điều đó nói rằng bạn nên tập tin này như là một lỗi với JetBrains, tôi có kinh nghiệm rất tốt với họ giải quyết phiền toái như thế này một cách nhanh chóng. – millimoose

+1

Tôi chắc chắn đã thêm __init__.py. Tôi đã giúp đỡ của diễn đàn pycharm. Tôi sẽ cập nhật nếu tôi nhận được bất kỳ câu trả lời nào. –

Trả lời

5

Đến Settings-> cấu trúc và sub_pack2 dự án như là một nguồn

+0

Điều này phù hợp với tôi! Chỉ cần đảm bảo rằng tất cả các thư mục src của tất cả các gói con được thêm dưới dạng thư mục nguồn trong các thiết lập cấu trúc dự án của dự án của bạn –

24

Một điều bạn có thể làm nếu bạn đang gặp rắc rối với "tài liệu tham khảo chưa được giải quyết" những sai sót trong PyCharm là:

  • Nhấp chuột phải trên các nguồn thư mục Python
  • Chọn "Mark mục As"> "nguồn gốc"

Hãy chắc chắn rằng bạn đã làm điều này cho tất cả các thư mục nguồn Python của bạn.

+1

cảm ơn bạn đã đề cập đến "Gốc nguồn". Nó đã khắc phục vấn đề tôi gặp phải với PyCharm. – LoveGandhi

+2

Hãy cho anh chàng EInnocent này kiểm tra phản ứng của anh ấy !!! Nó đã giúp tôi ngay bây giờ !! :) – Sammy

+1

Nhớ 'File - Invalidate cache/Restart' sau đó. –