Nhập python nếu không nhập

Trong khi làm việc trên các dự án lớn, chúng ta có thể gặp phải tình huống muốn nhập một mô-đun từ một thư mục khác. Nhưng vì một số lý do, mô-đun có thể không được nhập chính xác. Bây giờ đừng lo lắng nếu mô-đun của bạn không được nhập chính xác. Trong bài viết này, chúng tôi sẽ thảo luận về cách nhập mô-đun từ thư mục khác.  

Ghi chú. Một mô-đun chỉ là một chương trình Python kết thúc bằng. py và một thư mục chứa mô-đun trở thành một gói

Cấu trúc thư mục

 - Folder_1
    - main.py
 - Folder_2
     - module1.py

Giả sử, để nhập cách nhập tệp trong Python, chúng ta có hai thư mục khác nhau, một chứa chính. py là tệp Python chính của chúng tôi, nơi chúng tôi muốn nhập module1 từ Folder_2.  

Mô-đun 1. chứa hai chức năng được gọi là add và Odd_even. Hàm add sẽ nhận hai đối số và trả về phép cộng của chúng. Hàm Odd_even sẽ chỉ nhận một đối số và in Even nếu số chẵn hoặc in Odd nếu số lẻ

mô-đun 1. py

Python3




- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
2

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
3
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
4

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
5
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
6
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
7____18
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
9

 

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
0

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
1

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
3
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
3

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
5
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
5
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
6_______17
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
8
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
9
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
9
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
21
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
22

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
23
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
24
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
25
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
26
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
27

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
5
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
29____122

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
23
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
24
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
25
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
34
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
27

Nếu chúng ta chỉ cố gắng nhập module1 từ Thư mục_2, chúng ta sẽ gặp phải lỗi sau

chính. py

Python3




- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
36

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
37
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
38

 

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
39

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
40
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
41
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
27

đầu ra

Lỗi

ModuleNotFoundError, vì theo mặc định, trình thông dịch Python sẽ chỉ kiểm tra tệp trong thư mục hiện tại và chúng tôi cần đặt đường dẫn tệp theo cách thủ công để nhập các mô-đun từ thư mục khác. Chúng ta có thể làm điều này bằng nhiều cách khác nhau. Những cách này được thảo luận chi tiết dưới đây

Phương pháp 1. Nhập mô-đun từ thư mục khác bằng mô-đun sys

Chúng ta có thể sử dụng sys. path để thêm đường dẫn của thư mục khác mới [thư mục từ nơi chúng tôi muốn nhập mô-đun] vào đường dẫn hệ thống để Python cũng có thể tìm mô-đun trong thư mục đó nếu nó không tìm thấy mô-đun trong thư mục hiện tại của nó. như hệ thống. đường dẫn thuộc lớp loại danh sách, vì vậy, chúng ta có thể dễ dàng sử dụng phương thức chèn để thêm đường dẫn thư mục

Python3




- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
43

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
44
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
45
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
37
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
47

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
37
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
49

 

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
50

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
51
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
21____153
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
54
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
27

 

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
56

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
57

 

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
39

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
59
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
41____127

 

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
62

- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
24
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
25
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
65
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
66
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
8
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
53
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
8
- project
    - Folder_1
        - main.py
    - Folder_2
        - subfolder
            - new.py
70

đầu ra

sử dụng sys

Phương pháp 2. Sử dụng biến môi trường PYTHONPATH

Tương tự, nếu bạn không muốn sử dụng module sys để đặt đường dẫn cho thư mục mới. Bạn có thể chỉ định đường dẫn thư mục cho biến PYTHONPATH và chương trình của bạn vẫn hoạt động.  

Trong Linux, chúng ta có thể sử dụng lệnh sau trong terminal để đặt đường dẫn

xuất PYTHONPATH=’đường dẫn/đến/thư mục’

Trong hệ thống Windows

SET PYTHONPATH=”đường dẫn/đến/thư mục”

Để xem biến PYTHONPATH có giữ đường dẫn của thư mục mới hay không, chúng ta có thể sử dụng lệnh sau

Bạn có thể nhập câu lệnh if Python không?

Câu lệnh nhập chỉ là sự liên kết lại của một đoạn mã bên ngoài với tên cục bộ. Việc sử dụng luồng điều khiển if để kiểm soát quá trình nhập không khác gì việc gán một biến trong câu lệnh if về vấn đề đó . Bạn cần đảm bảo rằng bạn sẽ không sử dụng tên mà không được xác định theo bất kỳ cách nào.

Tại sao nhập * không được khuyến nghị?

Sử dụng nhập * trong các chương trình python được coi là một thói quen xấu vì theo cách này, bạn đang làm ô nhiễm không gian tên của mình , câu lệnh nhập * sẽ nhập tất cả .

Nhập chậm trong Python là gì?

Nhập chậm là chọn tham gia và chúng có thể được bật trên toàn cầu thông qua cờ -L mới cho trình thông dịch Python hoặc thông qua lệnh gọi đến một importlib mới. hàm set_lazy_imports[] . Hàm này nhận hai đối số, một đối số boolean được bật và một vùng chứa loại trừ.

Nhập * trong Python là gì?

Mã Python trong một mô-đun có quyền truy cập vào mã trong một mô-đun khác bằng quá trình nhập mã đó . Câu lệnh nhập khẩu là cách phổ biến nhất để gọi máy móc nhập khẩu, nhưng nó không phải là cách duy nhất. Các chức năng như importlib.

Chủ Đề