2010-01-11 55 views
15

Tôi đang làm việc với các PyFacebook gói bằng Python, và tôi đã nhìn thấy mọi người đề cập nhiều lần mà bạn có thể viết một tuyên bố nhập khẩu như sau:Python "từ xxx xxx.yyy nhập khẩu" lỗi

from facebook.djangofb import facebook 

Tuy nhiên, nó không hoạt động. Nó tuyên bố rằng facebook.method_name tồn tại trong mô-đun facebook, thay vì mô-đun djangofb. Tôi cho rằng tôi đang nhập facebook.method_name làm facebook, không phải là tôi nhận được nó từ gói facebook.

Tôi đang sử dụng Python 2.6.

Tôi làm cách nào để có thể bí danh facebook.djangofbfacebook?

+7

@qarma: thông điệp tiền thưởng của bạn không có ý nghĩa; nó chắc chắn dường như không có bất kỳ mối quan hệ nào với câu hỏi được hỏi ở đây. –

Trả lời

30

Đây là cách thích hợp để bí danh một mô-đun thông qua nhập:

import facebook.djangofb as facebook 
6

Từ python 3 documentation (nó hoạt động theo cùng một cách trong python 2.6, nhưng tôi tìm thấy tài liệu python 3 giải thích nó rõ ràng hơn):

Nếu tên mô-đun được theo sau bởi as, thì tên sau as bị ràng buộc trực tiếp vào mô-đun đã nhập.

Vì vậy, tuyên bố của bạn sẽ giống như thế:

import facebook.djangofb as facebook 

và sau đó facebook.method_name sẽ làm việc.

Xem thêm Can you define aliases for imported modules in Python? cho các tùy chọn răng cưa thêm

2
from facebook import djangofb as facebook 

Nếu bạn đang tìm kiếm để nhập djangofb như facebook, đó là cách bạn cần phải làm điều đó.

Bằng cách này, bạn có thể truy cập facebook.djangofb.method_name như facebook.method_name.

Điều đó đang được nói, phổ biến hơn là đặt tên không xung đột, tại đây sẽ là fb hoặc face. Cái gì đó không ghi đè nhập gốc facebook.