2012-04-22 31 views

Trả lời

25

Nếu tất cả các thư mục xảy ra là Python gói, tức là tất cả họ đều chứa __init__.py, sau đó bạn có thể sử dụng

from ..bar_dir import bar 

Nếu các thư mục không phải là gói Python, bạn có thể làm điều này bằng cách đùa giỡn với sys.path, nhưng bạn không nên.

+0

này sẽ không hoạt động nếu bạn muốn nhập trong một gói phi và bạn chỉ cần chạy một con trăn từ anh chị em. Trong trường hợp này sys.path.append là cách để đi – mhstnsc

+1

@mhstnsc Tôi muốn nói trong trường hợp này bạn đã làm điều gì đó sai, nhưng nếu nó chỉ là một số kịch bản hacky nó có thể là OK để mess xung quanh với 'sys.path'. –

+0

Không sai nhưng khi chạy mô-đun chính, bạn không thể thực hiện nhập khẩu tương đối. https://www.python.org/dev/peps/pep-0366/ – mhstnsc

12

Bạn có thể sử dụng các mô-đun sysos để nhập tổng quát. Trong foo.py bắt đầu với các dòng

import sys 
import os 
sys.path.append(os.path.abspath('../bar_dir')) 
import bar 
Các vấn đề liên quan