Mô-đun python là một loại tệp mã chứa một tập hợp các hàm, lớp và định nghĩa biến. Với mô-đun, bạn có thể làm cho mã có thể tái sử dụng và dễ hiểu. Để sử dụng mã mô-đun, bạn phải nhập nó
Dưới đây là một số phương pháp để nhập mô-đun bằng cách sử dụng đường dẫn đầy đủ của nó
- hệ thống. con đường. chức năng nối thêm []
- gói nhập khẩu
- Lớp SourceFileLoader
Ví dụ nhập mô-đun từ một đường dẫn trong Python
Mã ví dụ đơn giản. coi đây là tệp dự án và cấu trúc mô-đun. -
chủ yếu. mã py cho tất cả các ví dụ
var = "Hello main file"
num = 9876543210
def greeting[name]:
print["Hello, " + name]
sử dụng sys. con đường. chức năng nối thêm []
Biến đường dẫn chứa các thư mục mà trình thông dịch Python tìm kiếm để tìm các mô-đun đã nhập trong tệp nguồn
import sys
# appending a path
sys.path.append['modules']
from modules import main
print[main.num]
đầu ra. 9876543210
Sử dụng gói importlib
nhập khẩu. util là một trong những mô-đun có trong gói này có thể được sử dụng để nhập mô-đun từ đường dẫn đã cho
import importlib.util
spec = importlib.util.spec_from_file_location["main", "modules/main.py"]
foo = importlib.util.module_from_spec[spec]
spec.loader.exec_module[foo]
print[foo.var]
đầu ra. Xin chào tập tin chính
Sử dụng lớp SourceFileLoader
Lớp SourceFileLoader là một lớp cơ sở trừu tượng được sử dụng để triển khai tải tệp nguồn với sự trợ giúp của hàm load_module[] nhập mô-đun
from importlib.machinery import SourceFileLoader
# imports the module from the given path
foo = SourceFileLoader["main", "modules/main.py"].load_module[]
foo.greeting["Kevin"]
đầu ra. Xin chào Kevin
Hãy bình luận nếu bạn có bất kỳ nghi ngờ hoặc đề xuất nào về chủ đề mô-đun Python này
Ghi chú. IDE. PyCharm 2021. 3. 3 [Phiên bản cộng đồng]
cửa sổ 10
Trăn 3. 10. 1
Tất cả các Ví dụ về Python đều nằm trong Python 3, vì vậy có thể nó khác với python 2 hoặc các phiên bản nâng cấp
Rohit
Bằng cấp về Khoa học Máy tính và Kỹ sư. Nhà phát triển ứng dụng và có kinh nghiệm về nhiều ngôn ngữ lập trình. Đam mê công nghệ & thích học hỏi kỹ thuật
Cách Pythonic nhất để nhập mô-đun từ một thư mục khác là đặt một tệp trống có tên __init__.py
vào thư mục đó và sử dụng đường dẫn tương đối với ký hiệu dấu chấm
Ví dụ: một mô-đun trong thư mục mẹ sẽ được nhập với from . import module
. Tệp __init__.py
báo hiệu cho Python rằng thư mục phải được coi là gói
Xây dựng vấn đề
Vấn đề. Làm cách nào để nhập tệp hoặc mô-đun từ một thư mục hoặc thư mục khác trong Python?
Ví dụ. Giả sử, bạn đã đưa ra cấu trúc thư mục sau
application
├── app
│ └── folder
│ └── file_1.py
└── app2
└── some_folder
└── file_2.py
Mục tiêu của bạn là nhập các hàm từ file_1.py
trong
# file_2.py import sys sys.path.append['/.../application/app/folder'] import file_10
Phương pháp 1. hệ thống. con đường. nối thêm []
Phương pháp đầu tiên nối thêm đường dẫn của ________ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ với biến _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ của hệ thống
# file_2.py import sys sys.path.append['/.../application/app/folder'] import file_1
Lưu ý rằng bạn cần thay thế ba dấu chấm đầu tiên trong
# file_2.py import sys sys.path.append['/.../application/app/folder'] import file_13 bằng đường dẫn cụ thể đến thư mục
# file_2.py import sys sys.path.append['/.../application/app/folder'] import file_14
Nhân tiện, vui lòng tham gia học viện email miễn phí của tôi và tải xuống bảng gian lận Python của bạn tại đây
Thật thú vị–và hàng nghìn Finxter đã nói với tôi rằng họ thích các cheat sheet
Được rồi, hãy chuyển sang một giải pháp sửa đổi một chút cho vấn đề này
Phương pháp 2. hệ thống. con đường. chèn[]
Một cách thay thế tương tự là chèn đường dẫn của file_1.py
vào vị trí 1 của biến
# file_2.py import sys sys.path.append['/.../application/app/folder'] import file_12 của hệ thống
Điều này đảm bảo rằng nó được tải với mức độ ưu tiên cao hơn và tránh một số xung đột khi đặt tên
# file_2.py import sys sys.path.insert[1, '/.../application/app/folder'] import file
Một lần nữa, thay thế ba dấu chấm đầu tiên trong
# file_2.py import sys sys.path.append['/.../application/app/folder'] import file_13 bằng đường dẫn cụ thể đến thư mục
# file_2.py import sys sys.path.append['/.../application/app/folder'] import file_14
Phương pháp 3. Ký hiệu dấu chấm với __init__. py
Bạn cũng có thể thực hiện thủ thuật sau—tạo một gói mới
# file_2.py from application.app.folder.file_1 import func_name
Tuy nhiên, đảm bảo bao gồm một tệp __init__.py
trống trong thư mục
Tệp này báo cho Python coi thư mục là một gói. Tôi coi đây là cách Pythonic nhất để giải quyết vấn đề này
Phương pháp 4. nhập khẩu
Một giải pháp thay thế không quá Pythonic - phức tạp hơn và dựa trên các phụ thuộc bên ngoài - sẽ là sử dụng mô-đun
# file_2.py import sys sys.path.insert[1, '/.../application/app/folder'] import file0
Đây là một ví dụ
import importlib.util as ilu folder = '/.../application/app/folder' file = 'file_2' spec = ilu.spec_from_file_location[file, folder] your_lib = ilu.module_from_spec[spec] spec.loader.exec_module[your_lib] your_lib.function[]
Video liên quan
Vui lòng xem video giải thích sau đây, trong đó Peter, Người sáng tạo Finxter, chỉ cho bạn cách gọi một hàm từ một tệp khác
Làm cách nào để gọi một hàm từ một tệp khác trong Python?
Xem video này trên YouTube
Người giới thiệu
- https. // stackoverflow. com/câu hỏi/4383571/nhập-tệp-từ-thư mục khác nhau
- https. // stackoverflow. com/questions/67631/how-to-import-a-module-given-the-full-path?rq=1
- Cách nhập hàm Python từ thư mục khác
Đi đâu từ đây?
Đủ lý thuyết. Hãy thực hành một số
Các lập trình viên được trả sáu con số trở lên vì họ có thể giải quyết vấn đề hiệu quả hơn bằng cách sử dụng trí thông minh máy móc và tự động hóa
Để trở nên thành công hơn trong việc viết mã, hãy giải quyết nhiều vấn đề thực tế hơn cho người thực. Đó là cách bạn trau dồi những kỹ năng bạn thực sự cần trong thực tế. Rốt cuộc, việc sử dụng lý thuyết học tập mà không ai cần là gì?
Bạn xây dựng các kỹ năng mã hóa có giá trị cao bằng cách làm việc trên các dự án mã hóa thực tế
Bạn có muốn ngừng học với các dự án đồ chơi và tập trung vào các dự án mã thực tế giúp bạn kiếm tiền và giải quyết các vấn đề thực sự cho mọi người không?
🚀 Nếu câu trả lời của bạn là CÓ. , cân nhắc trở thành nhà phát triển Python tự do. Đó là cách tốt nhất để tiếp cận nhiệm vụ cải thiện kỹ năng Python của bạn—ngay cả khi bạn là người mới hoàn toàn
Nếu bạn chỉ muốn tìm hiểu về cơ hội làm việc tự do, vui lòng xem hội thảo trên web miễn phí của tôi “Cách xây dựng kỹ năng Python có thu nhập cao của bạn” và tìm hiểu cách tôi phát triển công việc viết mã của mình trực tuyến cũng như cách bạn có thể làm được—từ sự thoải mái của bạn
Tham gia hội thảo trên web miễn phí ngay bây giờ
Các hướng dẫn khác về Finxter
Học tập là một quá trình liên tục và bạn nên khôn ngoan để không bao giờ ngừng học hỏi và cải thiện trong suốt cuộc đời mình. 👑
Học gì?
Tôi khuyên bạn nên đọc ít nhất một hướng dẫn mỗi ngày [chỉ 5 phút cho mỗi hướng dẫn là đủ] để đảm bảo rằng bạn không ngừng học hỏi
💡 Nếu bạn muốn chắc chắn rằng mình không quên thói quen của mình, vui lòng tham gia học viện email miễn phí của chúng tôi để nhận các hướng dẫn mới hàng tuần và lời nhắc học tập trong INBOX của bạn
Ngoài ra, hãy lướt qua danh sách hướng dẫn sau đây và mở 3 hướng dẫn thú vị trong tab trình duyệt mới để bắt đầu thói quen học tập mới — hoặc tiếp tục với thói quen học tập hiện có — của bạn ngay hôm nay. 🚀
Khái niệm cơ bản về Python
- Python Một dòng cho vòng lặp
- Nhập mô-đun từ thư mục khác
- Xác định loại đối tượng Python
- Chuyển đổi danh sách chuỗi thành danh sách int
- Chuyển đổi danh sách Int thành danh sách chuỗi
- Chuyển đổi danh sách chuỗi thành danh sách nổi
- Chuyển đổi danh sách thành mảng NumPy
- Nối dữ liệu vào tệp JSON
- Danh sách lọc Python
- Danh sách lồng nhau
Quản lý phụ thuộc Python
- Cài đặt PIP
- Cách kiểm tra phiên bản Python của bạn
- Kiểm tra phiên bản Pandas trong Script
- Kiểm tra phiên bản Python Jupyter
- Kiểm tra phiên bản gói PIP
Gỡ lỗi Python
- Bắt và in ngoại lệ
- Danh sách chỉ số vượt khỏi phạm vi
- Sửa Giá trị Lỗi Sự thật
- Không thể nhập tên X Lỗi
Nội dung thú vị
- 5 Cheat Sheet Mỗi Python Coder cần sở hữu
- 10 câu đố Python hay nhất để khám phá trình độ kỹ năng thực sự của bạn
- Cách kiếm 1000 đô la từ bên lề với tư cách là một Freelancer Python
Cảm ơn bạn đã học với Finxter
lập trình viên
Q: How do you tell an introverted computer scientist from an extroverted computer scientist?
A: An extroverted computer scientist looks at your shoes when he talks to you.
Chris
Trong khi làm việc với tư cách là một nhà nghiên cứu trong các hệ thống phân tán, Dr. Christian Mayer tìm thấy tình yêu của mình với việc dạy sinh viên khoa học máy tính
Để giúp sinh viên đạt được mức độ thành công Python cao hơn, anh ấy đã thành lập trang web giáo dục lập trình Finxter. com. Ông là tác giả của cuốn sách lập trình nổi tiếng Python One-Liners [NoStarch 2020], đồng tác giả của loạt sách tự xuất bản Coffee Break Python, người đam mê khoa học máy tính, cộng tác viên tự do và chủ sở hữu của một trong 10 blog Python lớn nhất thế giới
Niềm đam mê của anh ấy là viết, đọc và mã hóa. Nhưng niềm đam mê lớn nhất của anh ấy là phục vụ các lập trình viên đầy tham vọng thông qua Finxter và giúp họ nâng cao kỹ năng của mình. Bạn có thể tham gia học viện email miễn phí của anh ấy tại đây