服装网站模板,网站建设工作整改报告,做俄罗斯外贸的网站,拼多多网站模块对于开发 Python 程序很重要。 使用模块#xff0c;我们可以分离代码库的不同部分以便于管理。
使用模块时#xff0c;了解它们的工作方式以及如何将它们导入我们的代码非常重要。 如果没有这种理解或错误#xff0c;我们可能会遇到不同的错误。
此类错误的一个示例是…模块对于开发 Python 程序很重要。 使用模块我们可以分离代码库的不同部分以便于管理。
使用模块时了解它们的工作方式以及如何将它们导入我们的代码非常重要。 如果没有这种理解或错误我们可能会遇到不同的错误。
此类错误的一个示例是 ModuleNotFoundError。 在本文中我们将讨论在 Python 中解决 ModuleNotFoundError 的方法。 使用正确的模块名称解决 Python 中的 ModuleNotFoundError
让我们用两个文件创建一个简单的 Python 代码库index.py 和 file.py我们将 file.py 导入到 index.py 文件中。 这两个文件都在同一目录中。
file.py 文件包含以下代码。
class Student():def __init__(self, firstName, lastName):self.firstName firstNameself.lastName lastNameindex.py 文件包含以下代码。
import fiIe
studentOne fiIe.Student(Isaac, Asimov)
print(studentOne.lastName)现在让我们运行 index.py。 我们的代码执行的输出如下。
Traceback (most recent call last):File c:\Users\akinl\Documents\Python\index.py, line 1, in moduleimport fiIe
ModuleNotFoundError: No module named fiIe我们有一个 ModuleNotFoundError。 如果仔细观察您会注意到 import 语句有一个拼写错误其中 file 被写为 filel 被大写的 I 替换了。
因此如果我们使用了错误的名称就会抛出 ModuleNotFoundError。 编写模块名称时要小心。
现在让我们更正它并运行我们的代码。
import file
studentOne file.Student(Isaac, Asimov)
print(studentOne.lastName)代码的输出
Asimov此外我们可以使用 from 关键字重写 import 语句并仅导入 Student 类。 这对于我们不想导入模块中存在的所有函数、类和方法的情况很有用。
from file import Student
studentOne Student(Isaac, Asimov)
print(studentOne.lastName)我们将得到与上次相同的输出。 使用正确的语法解决 Python 中的 ModuleNotFoundError
当我们在导入另一个模块时使用错误的语法时特别是在单独目录中使用模块时我们可能会得到 ModuleNotFoundError。
让我们使用与上一节相同但有一些扩展的代码来创建一个更复杂的代码库。 要创建此代码库我们需要以下项目结构。
Project/data/file.pywelcome.pyindex.py有了这个结构我们就有了一个包含文件和欢迎模块的数据包。
在 file.py 文件中我们有以下代码。
class Student():def __init__(self, firstName, lastName):self.firstName firstNameself.lastName lastName在 welcome.py 中我们有以下代码。
def printWelcome(arg):return Welcome to argindex.py 包含尝试导入文件和欢迎并使用 Student 类和函数 printWelcome 的代码。
import data.welcome.printWelcome
import data.file.Studentwelcome printWelcome(Lagos)
studentOne Student(Isaac, Asimov)print(welcome)
print(studentOne.firstName)运行index.py的输出
Traceback (most recent call last):File c:\Users\akinl\Documents\Python\index.py, line 1, in moduleimport data.welcome.printWelcome
ModuleNotFoundError: No module named data.welcome.printWelcome; data.welcome is not a package该代码尝试直接使用点运算符导入函数 printWelcome 和类 Student而不是使用 from 关键字或 __init__.py 来轻松绑定子模块。 通过这样做我们有一个 ModuleNotFoundError 抛给我们。
让我们使用正确的 import 语句语法来防止 ModuleNotFoundError 并直接导入函数和类。
from data.file import Student
from data.welcome import printWelcomewelcome printWelcome(Lagos)
studentOne Student(Isaac, Asimov)print(welcome)
print(studentOne.firstName)代码的输出
Welcome to Lagos
Isaac我们可以将数据包中的模块文件和欢迎绑定到它的父命名空间。 为此我们需要 __init__.py 文件。
在 __init__.py 文件中我们导入包内的所有模块及其函数、类或对象以便于管理。
from .file import Student
from .welcome import printWelcome现在我们可以更简洁地编写我们的 index.py 并很好地绑定到父命名空间 data。
from data import Student, printWelcomewelcome printWelcome(Lagos)
studentOne Student(Isaac, Asimov)print(welcome)
print(studentOne.firstName)输出将与上次代码执行相同。
为防止出现 ModuleNotFoundError 错误消息请确保您没有错误的导入语句或印刷错误。