Hướng dẫn can t import class from module python - không thể nhập lớp từ mô-đun python

Tôi đang gặp vấn đề với nhập khẩu Python. Tôi đã tạo một mô -đun để nhập thuận tiện một vài lớp bên trong mô -đun với một câu lệnh. Tôi đặt tất cả các bản nhập khẩu của mình vào bên trong phần của mô -đun đó, nhưng dường như nó không hoạt động.

maindir\
- driver.py
- Utility\
  - __init__.py
  - UtilityClasses.py

Cấu trúc thư mục của tôi trông giống như ở trên. Bên trong các lớp tiện ích, tôi có một lớp mà tôi đã tạo ra được gọi là MyClass.

Bên trong tệp init trong thư mục tiện ích, tôi có mã có nội dung:

import UtilityClasses
from UtilityClasses import MyClass

Bên trong Driver.py tôi có mã có nội dung:

import Utility
myVar = MyClass[param1]

Tuy nhiên, khi tôi chạy điều này, tôi gặp một lỗi khi nói với tôi rằng tên MyClass không được xác định.

Đã hỏi ngày 16 tháng 3 năm 2015 lúc 2:53Mar 16, 2015 at 2:53

4

Trong

import UtilityClasses
from UtilityClasses import MyClass
0, bạn có thể làm

from UtilityClasses import *
from SomeOtherFile import *

Điều này sẽ nhập mọi thứ từ

import UtilityClasses
from UtilityClasses import MyClass
1 và
import UtilityClasses
from UtilityClasses import MyClass
2.

Nhưng bạn vẫn phải truy cập nó bằng tên mô -đun

Cập nhật: Bạn có thể truy cập mọi thứ như thế này

Trong

import UtilityClasses
from UtilityClasses import MyClass
3:

from Utility import *

a = MyClass[]
b = ClassInSomeOtherFile[]

Đã trả lời ngày 16 tháng 3 năm 2015 lúc 3:35Mar 16, 2015 at 3:35

KedarkedarKedar

1.61810 Huy hiệu bạc20 Huy hiệu đồng10 silver badges20 bronze badges

3

Ma cua ban

import Utility
myVar = MyClass[param1]

Tất nhiên sẽ không hoạt động -

import UtilityClasses
from UtilityClasses import MyClass
4 không được đề cập đến đâu và nó sẽ không đến một cách kỳ diệu từ hư không. Rõ ràng là tốt hơn tiềm ẩn:

from Utility import MyClass
myVar = MyClass[param1]

Nên làm việc như một sự quyến rũ!

Đã trả lời ngày 16 tháng 3 năm 2015 lúc 4:20Mar 16, 2015 at 4:20

Alex Martellialex MartelliAlex Martelli

830K165 Huy hiệu vàng1205 Huy hiệu bạc1385 Huy hiệu Đồng165 gold badges1205 silver badges1385 bronze badges

3

Lỗi Python

import UtilityClasses
from UtilityClasses import MyClass
5 xảy ra khi một lớp nhập khẩu không thể truy cập được hoặc nằm trong một phụ thuộc tròn. & NBSP;

Nguyên nhân gây ra bản nhập khẩu: không thể nhập tên

Lỗi này thường xảy ra khi một lớp không thể được nhập do một trong những lý do sau:

  • Lớp nhập khẩu là trong một phụ thuộc tròn.
  • Lớp nhập khẩu không có sẵn hoặc không được tạo.
  • Tên lớp nhập khẩu là sai chính tả.
  • Lớp nhập từ một mô -đun bị đặt sai chỗ.
  • Lớp nhập khẩu không có sẵn trong thư viện Python.

Python Irtunterror: Không thể nhập ví dụ tên

Ở đây, một ví dụ về Python

import UtilityClasses
from UtilityClasses import MyClass
5 bị ném do sự phụ thuộc tròn. Hai mô -đun Python

import UtilityClasses
from UtilityClasses import MyClass
7 và
import UtilityClasses
from UtilityClasses import MyClass
8 được tạo ra để đạt được điều này:

test1.py:

from test2 import Class2
class Class1:
    obj = Class2[]

test2.py:

from test1 import Class1
class Class2:
    obj = Class1[]

Trong ví dụ trên, việc khởi tạo

import UtilityClasses
from UtilityClasses import MyClass
9 trong
import Utility
myVar = MyClass[param1]
0 phụ thuộc vào
import Utility
myVar = MyClass[param1]
1 và
import UtilityClasses
from UtilityClasses import MyClass
9 trong
import Utility
myVar = MyClass[param1]
1 phụ thuộc vào
import Utility
myVar = MyClass[param1]
0. Đây là một phụ thuộc tròn vì cả hai tệp đều cố gắng tải lẫn nhau. Do đó, chạy
import UtilityClasses
from UtilityClasses import MyClass
7 [hoặc
import UtilityClasses
from UtilityClasses import MyClass
8] gây ra lỗi
import UtilityClasses
from UtilityClasses import MyClass
5:

Traceback [most recent call last]:
  File "test1.py", line 1, in 
    from test2 import Class2
  File "test2.py", line 1, in 
    from test1 import Class1
  File "test1.py", line 1, in 
    from test2 import Class2
ImportError: cannot import name 'Class2' from partially initialized module 'test2' [most likely due to a circular import] [test2.py]

Cách sửa lỗi nhập khẩu: Không thể nhập tên trong Python

import UtilityClasses
from UtilityClasses import MyClass
5 có thể được sửa bằng cách sử dụng các phương pháp sau, tùy thuộc vào nguyên nhân của lỗi:

  • Nếu lỗi xảy ra do sự phụ thuộc tròn, nó có thể được giải quyết bằng cách chuyển các lớp đã nhập sang tệp thứ ba và nhập chúng từ tệp này.
  • Nếu lỗi xảy ra do tên sai, tên của lớp trong tệp Python phải được xác minh và sửa chữa. & NBSP;
  • Nếu lớp được nhập không có sẵn hoặc không được tạo, tệp phải được kiểm tra để đảm bảo rằng lớp nhập được nhập trong tệp. Nếu không, nó nên được tạo ra.
  • Nếu lớp được nhập từ một mô -đun bị đặt sai vị trí, cần đảm bảo rằng lớp được nhập từ mô -đun chính xác.

Theo dõi, phân tích và quản lý lỗi với Rollbar

Quản lý lỗi và ngoại lệ trong mã của bạn là một thách thức. Nó có thể làm cho việc triển khai mã sản xuất một trải nghiệm đáng sợ. Có thể theo dõi, phân tích và quản lý các lỗi trong thời gian thực có thể giúp bạn tiến hành tự tin hơn. Rollbar tự động hóa việc theo dõi và xử lý lỗi, giúp sửa lỗi Python dễ dàng hơn bao giờ hết. Thử nó ngay hôm nay!

Tại sao Python không nhập mô -đun?

Dưới đây là một vài lý do tại sao một mô -đun có thể không được tìm thấy: bạn không có mô -đun bạn đã thử nhập cài đặt trên máy tính của mình. Bạn đã đánh vần một mô -đun không chính xác [vẫn liên kết trở lại điểm trước, rằng mô -đun sai chính tả không được cài đặt] ... ví dụ, đánh vần Numpy khi Numpys trong quá trình nhập.you do not have the module you tried importing installed on your computer. you spelled a module incorrectly [which still links back to the previous point, that the misspelled module is not installed]...for example, spelling numpy as numpys during import.

Tôi có thể nhập một lớp học trong Python không?

Nhập một lớp cụ thể bằng cách sử dụng lệnh nhập mà bạn chỉ cần tạo một lớp khác.Tệp PY giống như myfile.py và biến lớp học của bạn.Sau đó, trong tệp chính chỉ cần nhập lớp bằng dòng lệnh từ hình vuông nhập khẩu myfile.by using the import command You just have to make another . py file just like MyFile.py and make the class your desired name. Then in the main file just import the class using the command line from MyFile import Square.

Tôi có thể nhập __ init __ không?

Có hai loại gói trong các gói Python, thường xuyên và không gian tên.Cái trước yêu cầu tệp __init__.py trong khi cái sau thì không.Bất kỳ thư mục nào có tệp python init python được đánh dấu là một gói của Python và có thể được nhập.Any directory with an init python file is marked as a package by python and can be imported.

__ nhập khẩu __ trong python là gì?

Người ta có thể sử dụng hàm __Import __ [] của Python.Nó cũng giúp nhập các mô -đun trong thời gian chạy.Cú pháp: __Import __ [Tên, Globals, Locals, FromList, Level] Tham số: Tên: Tên của mô -đun sẽ được nhập.It helps to import modules in runtime also. Syntax: __import__[name, globals, locals, fromlist, level] Parameters: name : Name of the module to be imported.

Bài Viết Liên Quan

Chủ Đề