Dưới đây là cấu trúc thư mục:Làm cách nào để nhập tập lệnh Python từ thư mục anh chị em?
parent_dir/
foo_dir/
foo.py
bar_dir/
bar.py
Làm thế nào để nhập khẩu bar.py vào foo.py?
Dưới đây là cấu trúc thư mục:Làm cách nào để nhập tập lệnh Python từ thư mục anh chị em?
parent_dir/
foo_dir/
foo.py
bar_dir/
bar.py
Làm thế nào để nhập khẩu bar.py vào foo.py?
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.
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
@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'. –
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
Bạn có thể sử dụng các mô-đun sys
và os
để 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
Xem: https://stackoverflow.com/questions/6323860/sibling-package-imports/27878845#27878845 –