Tại sao tôi không thể nhập một mô-đun trong python?

Trong Python, bạn có thể nhập thư viện chuẩn, các gói được cài đặt bằng pip, các gói của riêng bạn, v.v. bằng câu lệnh

# NG
import os, sys

# OK
import os
import sys
4

  • 5. Hệ thống nhập — Python 3. 10. 0 tài liệu
  • 7. Câu lệnh đơn giản - Câu lệnh nhập — Python 3. 10. 0 tài liệu

Bài viết này mô tả các nội dung sau

  • Các mô-đun, gói và thư viện trong Python
  • Cách sử dụng cơ bản của
    # NG
    import os, sys
    
    # OK
    import os
    import sys
    
    4
  • Cách viết
    # NG
    import os, sys
    
    # OK
    import os
    import sys
    
    4 theo khuyến nghị trong PEP8
  • Nhập hàm, biến, lớp, v.v.
    # NG
    import os, sys
    
    # OK
    import os
    import sys
    
    7
  • Nhập bằng bí danh.
    # NG
    import os, sys
    
    # OK
    import os
    import sys
    
    8
  • Nhập khẩu từ các gói
  • Các lỗi thường gặp liên quan đến nhập khẩu
    • # NG
      import os, sys
      
      # OK
      import os
      import sys
      
      9
    • from math import pi, radians
      
      0

Xem bài viết sau để biết đường dẫn tìm kiếm module

  • Kiểm tra và thêm đường dẫn tìm kiếm mô-đun với sys. đường dẫn trong Python

Liên kết được tài trợ

Các mô-đun, gói và thư viện trong Python

mô-đun

Trong Python, một mô-đun là một tệp xác định các hàm, lớp, v.v.

  • 6. Mô-đun — Python 3. 10. 0 tài liệu

gói

Thư mục chứa các mô-đun và

from math import pi, radians
1 được gọi là "gói thông thường".
from math import pi, radians
1 có thể là một tệp trống

Trong Trăn 3. 3 trở lên, các thư mục không chứa

from math import pi, radians
1 có thể được nhập dưới dạng gói. Các gói như vậy được gọi là "gói không gian tên"

  • 5. Hệ thống nhập - Gói — Python 3. 10. 0 tài liệu

thư viện

Mặc dù không được xác định nghiêm ngặt, các gói và mô-đun đôi khi được gọi là thư viện

Cách sử dụng cơ bản của
# NG
import os, sys

# OK
import os
import sys
4

Ví dụ: nhập mô-đun toán học

  • toán học — Hàm toán học — Python 3. 10. 0 tài liệu

Với

from math import pi, radians
5, một mô-đun được nhập dưới dạng một đối tượng thuộc loại
from math import pi, radians
6. Bạn có thể kiểm tra tệp nào được nhập bằng
from math import pi, radians
7

# NG
import os, sys

# OK
import os
import sys
4

nguồn. nhập khẩu_ví dụ. py

Bạn có thể sử dụng các hàm và biến được xác định trong mô-đun với

from math import pi, radians
8,
from math import pi, radians
9,

# NG
import os, sys

# OK
import os
import sys
7

nguồn. nhập khẩu_ví dụ. py

Nếu bạn muốn sử dụng trực tiếp các hàm hoặc biến của mô-đun, hãy sử dụng

# NG
import os, sys

# OK
import os
import sys
80 được mô tả bên dưới. Lưu ý rằng
# NG
import os, sys

# OK
import os
import sys
81 gây ra lỗi

Cách viết
# NG
import os, sys

# OK
import os
import sys
4 theo khuyến nghị trong PEP8

PEP8, hướng dẫn phong cách Python, mô tả cách viết câu lệnh

# NG
import os, sys

# OK
import os
import sys
4

  • Nhập khẩu PEP 8 -- Hướng dẫn về Phong cách cho Mã Python. con trăn. tổ chức

Lưu ý đây chỉ là style guide nên sẽ không có lỗi dù bạn không viết theo cách này

Nhập nhiều mô-đun

Bạn có thể viết nhiều mô-đun được phân tách bằng dấu phẩy sau câu lệnh

# NG
import os, sys

# OK
import os
import sys
4, nhưng điều này không được khuyến nghị trong PEP8. Nhập khẩu thường phải trên các dòng riêng biệt

# NG
import os, sys

# OK
import os
import sys

nguồn. nhập_example_pep. py

Nếu bạn sử dụng

# NG
import os, sys

# OK
import os
import sys
80 để nhập hàm, biến, lớp, v.v. , như được giải thích tiếp theo, bạn có thể tách chúng bằng dấu phẩy

from math import pi, radians

nguồn. nhập_example_từ. py

Thứ tự các mô-đun

Các mô-đun nên được nhóm và nhập theo thứ tự sau, tùy thuộc vào loại của chúng. Tách mỗi nhóm bằng một dòng trống

  1. Thư viện tiêu chuẩn
  2. Thư viện bên thứ ba
  3. thư viện địa phương

Mặc dù nó không được viết bằng PEP8, nhưng mỗi mô-đun trong một nhóm thường được sắp xếp theo thứ tự bảng chữ cái

# NG
import os, sys

# OK
import os
import sys
8

nguồn. nhập_example_pep. py

Nhập hàm, biến, lớp, v.v.
# NG
import os, sys

# OK
import os
import sys
7

Bạn có thể chỉ định và nhập các hàm, biến, lớp, v.v. được xác định trong mô-đun với

# NG
import os, sys

# OK
import os
import sys
7

Chỉ nhập một mặt hàng

Bạn có thể nhập các chức năng, v.v. với

# NG
import os, sys

# OK
import os
import sys
88

Các mặt hàng đã nhập có thể được sử dụng trực tiếp với

# NG
import os, sys

# OK
import os
import sys
89. Bản thân mô-đun không được nhập. Lỗi
# NG
import os, sys

# OK
import os
import sys
10 xuất hiện khi bạn cố gắng sử dụng các mục khác

# NG
import os, sys

# OK
import os
import sys
1

nguồn. nhập_example_từ. py

Nhập nhiều mặt hàng cùng lúc

Bạn có thể nhập nhiều hàm, biến, v.v. từ cùng một mô-đun cùng một lúc bằng cách viết chúng được phân tách bằng dấu phẩy

# NG
import os, sys

# OK
import os
import sys
3

nguồn. nhập_example_từ. py

Nếu một dòng quá dài, bạn có thể sử dụng dấu ngoặc đơn

# NG
import os, sys

# OK
import os
import sys
11 để ngắt dòng

# NG
import os, sys

# OK
import os
import sys
5

nguồn. nhập_example_từ. py

Nhập tất cả các mục có
# NG
import os, sys

# OK
import os
import sys
12 [không khuyến nghị]

Với

# NG
import os, sys

# OK
import os
import sys
12, tất cả các hàm, biến, v.v. được xác định trong mô-đun được nhập

# NG
import os, sys

# OK
import os
import sys
8

nguồn. nhập_example_từ. py

Nếu

# NG
import os, sys

# OK
import os
import sys
14 được xác định trong một mô-đun, chỉ các tên trong
# NG
import os, sys

# OK
import os
import sys
14 được nhập

Lưu ý rằng việc nhập bằng cách sử dụng

# NG
import os, sys

# OK
import os
import sys
12 không được khuyến nghị trong PEP8 vì không rõ tên nào tồn tại trong không gian tên nào

Liên kết được tài trợ

Nhập bằng bí danh.
# NG
import os, sys

# OK
import os
import sys
8

Bạn có thể sử dụng

# NG
import os, sys

# OK
import os
import sys
18 để nhập bằng bí danh. Nếu một bí danh được đưa ra, tên gốc không thể được sử dụng

Ví dụ về đặt bí danh cho một mô-đun

# NG
import os, sys

# OK
import os
import sys
4

nguồn. nhập_example_as. py

Ví dụ đặt bí danh cho biến

# NG
import os, sys

# OK
import os
import sys
70

nguồn. nhập_example_as. py

Một số thư viện, chẳng hạn như NumPy và pandas, thường được nhập với tên viết tắt

# NG
import os, sys

# OK
import os
import sys
71

Nhập khẩu từ các gói

Khi bạn nhập các mô-đun từ một gói, bạn cần cẩn thận về cách nhập chúng, tùy thuộc vào cấu trúc của chúng và

from math import pi, radians
1

Về cơ bản, tài liệu cho bạn biết cách nhập tệp, vì vậy chỉ cần làm theo hướng dẫn. Dưới đây là các ví dụ để giải thích rằng có nhiều mẫu khác nhau

urllib

Ví dụ: nhập các mô-đun và lớp từ thư viện chuẩn, urllib

  • urllib — Mô-đun xử lý URL — Python 3. 10. 0 tài liệu
  • cpython/Lib/urllib tại master · python/cpython

Các tệp [mô-đun] được lưu trữ trong thư mục

# NG
import os, sys

# OK
import os
import sys
30 như sau.
from math import pi, radians
1 trống

# NG
import os, sys

# OK
import os
import sys
72

Nếu bạn viết

# NG
import os, sys

# OK
import os
import sys
32, bạn không thể sử dụng các mô-đun bên dưới nó. Ví dụ:
# NG
import os, sys

# OK
import os
import sys
33 gây ra lỗi
from math import pi, radians
0

# NG
import os, sys

# OK
import os
import sys
73

nguồn. nhập_example_package_urllib. py

Bạn cần nhập các mô-đun với

# NG
import os, sys

# OK
import os
import sys
35

# NG
import os, sys

# OK
import os
import sys
74

nguồn. nhập_example_package_urllib. py

Bạn cũng có thể viết

# NG
import os, sys

# OK
import os
import sys
36

# NG
import os, sys

# OK
import os
import sys
75

nguồn. nhập_example_package_urllib. py

Cũng có thể chỉ định một lớp được định nghĩa trong mô-đun và nhập nó

# NG
import os, sys

# OK
import os
import sys
76

nguồn. nhập_example_package_urllib. py

Lưu ý rằng nếu mã khởi tạo không được viết bằng

from math import pi, radians
1 như thế này, bạn cần nhập mô-đun bên dưới nó

Nếu bạn đang sử dụng IPython/Jupyter Notebook, bạn có thể sử dụng

# NG
import os, sys

# OK
import os
import sys
38 chỉ bằng cách nhập
# NG
import os, sys

# OK
import os
import sys
30. Hành vi này là do quá trình khởi động IPython gây ra

  • nhập urllib. phân tích cú pháp không thành công khi Python chạy từ dòng lệnh

bộ sưu tập

Như một ví dụ khác, giới thiệu các bộ sưu tập

  • bộ sưu tập — Kiểu dữ liệu vùng chứa — Python 3. 10. 0 tài liệu

Thư mục

# NG
import os, sys

# OK
import os
import sys
50 bao gồm những điều sau đây

# NG
import os, sys

# OK
import os
import sys
77

Trong các bộ sưu tập, các lớp như

# NG
import os, sys

# OK
import os
import sys
51 và
# NG
import os, sys

# OK
import os
import sys
52 được định nghĩa trong
from math import pi, radians
1 thay vì lưu trữ các tệp mô-đun như urllib

  • cpython/Lib/bộ sưu tập tại master · python/cpython

Trong trường hợp này, khi bạn nhập một gói, bạn có thể sử dụng lớp là

# NG
import os, sys

# OK
import os
import sys
54

# NG
import os, sys

# OK
import os
import sys
78

nguồn. nhập_example_package_collections. py

Bạn không thể nhập các lớp học với

# NG
import os, sys

# OK
import os
import sys
54

# NG
import os, sys

# OK
import os
import sys
79

nguồn. nhập_example_package_collections. py

Bạn có thể nhập các lớp học với

# NG
import os, sys

# OK
import os
import sys
80

# NG
import os, sys

# OK
import os
import sys
0

nguồn. nhập_example_package_collections. py

NumPy

Ví dụ về thư viện bên thứ ba, NumPy

Trong NumPy, mỗi gói phụ được nhập vào

from math import pi, radians
1 trong thư mục
# NG
import os, sys

# OK
import os
import sys
58

  • numpy / numpy. Kho lưu trữ chính Numpy

Bạn không cần nhập từng mô-đun. Chỉ cần viết

# NG
import os, sys

# OK
import os
import sys
59 để sử dụng các chức năng khác nhau

scikit-học

Trường hợp của scikit-learning thì khác

scikit-learning không nhập các gói con trong

from math import pi, radians
1 trong thư mục
# NG
import os, sys

# OK
import os
import sys
81

  • scikit-learning/scikit-learning. scikit-học. máy học trong Python

Bạn cần nhập các gói con một cách rõ ràng, như sau

# NG
import os, sys

# OK
import os
import sys
1

nguồn. sklearn_iris_svm. py

Các lỗi thường gặp liên quan đến nhập khẩu

# NG
import os, sys

# OK
import os
import sys
9

Lỗi không tìm thấy mô-đun

# NG
import os, sys

# OK
import os
import sys
2

Tên của mô-đun hoặc đường dẫn tìm kiếm mô-đun có thể sai

  • Kiểm tra và thêm đường dẫn tìm kiếm mô-đun với sys. đường dẫn trong Python

Như thể hiện trong ví dụ về các bộ sưu tập ở trên,

# NG
import os, sys

# OK
import os
import sys
9 cũng được nâng lên khi bạn cố gắng nhập một lớp thay vì một mô-đun. Sử dụng
# NG
import os, sys

# OK
import os
import sys
80 để nhập một hàm hoặc một lớp

from math import pi, radians
0

Lỗi mô-đun đã nhập không có thuộc tính được chỉ định

# NG
import os, sys

# OK
import os
import sys
3

Có thể là không nhập đúng tệp

Ví dụ: khi bạn viết

from math import pi, radians
5, ưu tiên hàng đầu để tìm kiếm mô-đun là cùng thư mục với tệp tập lệnh được thực thi, vì vậy nếu có một tệp có tên
# NG
import os, sys

# OK
import os
import sys
87 trong thư mục, thì tệp đó sẽ được nhập

  • Kiểm tra và thêm đường dẫn tìm kiếm mô-đun với sys. đường dẫn trong Python

Sử dụng

# NG
import os, sys

# OK
import os
import sys
88 để kiểm tra xem tệp có được nhập từ vị trí dự kiến ​​hay không và nếu không, hãy đổi tên hoặc di chuyển tệp

Bạn có thể nhập mô-đun bằng Python theo cách thủ công không?

Một tệp được coi là một mô-đun trong python. Để sử dụng mô-đun, bạn phải nhập mô-đun bằng từ khóa nhập . Hàm hoặc các biến có trong tệp có thể được sử dụng trong tệp khác bằng cách nhập mô-đun. Chức năng này có sẵn trong các ngôn ngữ khác, như TypeScript, JavaScript, java, ruby, v.v.

Tại sao không khuyến khích nhập từ mô-đun Python?

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ả .

Lỗi nhập trong Python là gì?

Trong Python, ImportError xảy ra khi chương trình Python cố gắng nhập mô-đun không tồn tại trong bảng riêng tư . Ngoại lệ này có thể tránh được bằng cách xử lý ngoại lệ bằng cách sử dụng các khối thử và ngoại trừ. Chúng tôi cũng đã xem các ví dụ về cách ImportError xảy ra và cách xử lý lỗi này.

Chủ Đề