Mô-đun do người dùng xác định không tìm thấy lỗi trong python

\(\newcommand{L}[1]{\. #1 \. }\newcommand{VL}[1]{\L{ \vec{#1} }}\newcommand{R}[1]{\operatorname{Re}\,(#1)}\newcommand{I}[1]

Python tìm kiếm các mô-đun ở đâu?¶

Thấy

  • Tài liệu Python trên sys. đường dẫn;
  • Mô-đun Python của tuần trên. Đường dẫn nhập

Giả sử chúng ta đã viết một mô-đun Python và lưu nó dưới dạng

def func():
    print("Running useful function")
2, trong một thư mục có tên là
def func():
    print("Running useful function")
3

Chúng tôi cũng có một tập lệnh có tên là

def func():
    print("Running useful function")
4 trong một thư mục có tên là
def func():
    print("Running useful function")
5

Chúng tôi muốn có thể

def func():
    print("Running useful function")
6 mã trong
def func():
    print("Running useful function")
2 để sử dụng trong
def func():
    print("Running useful function")
4. Vì vậy, chúng tôi muốn có thể đưa dòng của anh ấy vào
def func():
    print("Running useful function")
4

________số 8

Mô-đun và tập lệnh có thể trông như thế này

Nội dung của

import a_module

a_module.func()
0

def func():
    print("Running useful function")

Nội dung của

import a_module

a_module.func()
1

import a_module

a_module.func()

Hiện tại,

def func():
    print("Running useful function")
4 sẽ thất bại với

def func():
    print("Running useful function")
4

Khi Python chạm vào dòng

import a_module

a_module.func()
3, nó sẽ cố gắng tìm một gói hoặc mô-đun có tên là
import a_module

a_module.func()
4. Một gói là một thư mục chứa các mô-đun, nhưng bây giờ chúng tôi sẽ chỉ xem xét các mô-đun. Mô-đun là một tệp có phần mở rộng phù hợp, chẳng hạn như
import a_module

a_module.func()
5. Vì vậy, Python đang tìm kiếm một tệp
def func():
    print("Running useful function")
2 và không tìm thấy nó

Bạn sẽ thấy hiệu ứng tương tự tại bảng điều khiển Python tương tác hoặc trong IPython

def func():
    print("Running useful function")
9

Python tìm kiếm các mô-đun trong “sys. đường dẫn"¶

Python có một thuật toán đơn giản để tìm một mô-đun có tên đã cho, chẳng hạn như

import a_module

a_module.func()
4. Nó tìm kiếm một tệp có tên là
def func():
    print("Running useful function")
2 trong các thư mục được liệt kê trong biến
import a_module

a_module.func()
9

def func():
    print("Running useful function")
3

Tệp

def func():
    print("Running useful function")
2 nằm trong thư mục
def func():
    print("Running useful function")
3 và thư mục này không có trong danh sách
import a_module

a_module.func()
9

Bởi vì

import a_module

a_module.func()
9 chỉ là một danh sách Python, giống như bất kỳ danh sách nào khác, chúng tôi có thể thực hiện thao tác nhập bằng cách thêm thư mục
def func():
    print("Running useful function")
3 vào danh sách

def func():
    print("Running useful function")
9

Có nhiều cách khác nhau để đảm bảo một thư mục luôn nằm trong danh sách Python

import a_module

a_module.func()
9 khi bạn chạy Python, bao gồm

  • đặt thư mục vào nội dung của biến môi trường
    def func():
        print("Running useful function")
    
    46 – Sử dụng PYTHONPATH
  • biến mô-đun thành một phần của gói có thể cài đặt và cài đặt nó – xem. tạo một gói Python

Là một bản hack thô sơ, bạn cũng có thể đặt thư mục

def func():
    print("Running useful function")
3 của mình trên Python
import a_module

a_module.func()
9 ở đầu các tệp cần nó

Nội dung của

def func():
    print("Running useful function")
49

def func():
    print("Running useful function")
5

sau đó

def func():
    print("Running useful function")
6

def func():
    print("Running useful function")
90 đơn giản ở trên sẽ chỉ hoạt động khi chạy tập lệnh từ thư mục chứa thư mục con
def func():
    print("Running useful function")
3. Ví dụ

def func():
    print("Running useful function")
9

Điều này là do thư mục

def func():
    print("Running useful function")
3 mà chúng tôi đã chỉ định là một đường dẫn tương đối và do đó Python tìm thư mục
def func():
    print("Running useful function")
3 trong thư mục làm việc hiện tại

Tại sao Python không nhận ra mô-đun của tôi?

Điều này là do phiên bản Python mà bạn đang chạy tập lệnh không được định cấu hình để tìm kiếm các mô-đun mà bạn đã cài đặt chúng. This happens when you use the wrong installation of pip to install packages.

Tại sao tôi gặp lỗi nhập trong Python?

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

Làm cách nào để cài đặt một mô-đun trong Python?

Cài đặt mô-đun bằng pip .
Đảm bảo mô-đun pip đã được cài đặt. .
Xác minh việc phát hành pip để đảm bảo nó được cài đặt chính xác. .
Install the new Python module using the command pip install . .. .
Để liệt kê tất cả các gói và mô-đun Python đã cài đặt, hãy sử dụng lệnh danh sách pip

Lỗi tên mô-đun trong Python là gì?

Trong Python, Lỗi Tên xảy ra khi bạn cố gắng sử dụng một biến, hàm hoặc mô-đun không tồn tại hoặc không được sử dụng theo cách hợp lệ. Some of the common mistakes that cause this error are: Using a variable or function name that is yet to be defined.