gpt4 book ai didi

Python 3 - 在同一目录中导入 .py 文件 - ModuleNotFoundError : No module named '__main__.char' ; '__main__' is not a package

转载 作者:太空狗 更新时间:2023-10-29 23:56:58 27 4
gpt4 key购买 nike

我在 Windows 10 上使用 Python 3.6。我在同一目录中有 2 个 .py 文件,char.pychar_user.py,如下所示:

字符.py:

# char.py

import cv2

#######################################################################################################################
class Char:

# constructor #####################################################################################################
def __init__(self):
self.contour = None
self.centerOfMassX = None
self.centerOfMassY = None
# end def

# end class

字符用户.py:

# char_user.py

import os
import cv2

# I've tried this various ways, see more comments below
from .char import Char

#######################################################################################################################
def main():

char = Char()

char.centerOfMassX = 0
char.centerOfMassY = 0

print("finished main() without error")
# end main

#######################################################################################################################
if __name__ == "__main__":
main()

无论我尝试什么,在 char_user.py 中我尝试导入文件 char.py,类 Char 的行中,我都收到错误:

ModuleNotFoundError: No module named '__main__.char'; '__main__' is not a package

以下是我在 char_user.py 中尝试导入语句的一些方法:

from .char import Char
from . import Char
import Char
import char

我已经尝试过在同一目录中使用和不使用空 __init__.py

我已经查阅了这些帖子,但没有一个能够提供解决方案:

How to import the class within the same directory or sub directory?

ModuleNotFoundError: What does it mean __main__ is not a package?

ModuleNotFoundError: No module named '__main__.xxxx'; '__main__' is not a package

这是我第一次在 Python 3 中尝试导入我在同一目录中编写的脚本(在 Python 2 中多次这样做而无需担心)。

有没有办法做到这一点?我错过了什么?

最佳答案

我能够通过 from char import Char 实现这一点,因为您正在尝试从脚本 char 导入类 Char

据我所知,from .char import Char 行仅在两个文件都是 python 模块的一部分时使用(具有自己的 __init__.py ), 他们不是。在这种情况下,.char 显式引用同一模块文件夹内的文件 char.py,而不是从安装到 PYTHONPATH 的其他模块导入。

关于Python 3 - 在同一目录中导入 .py 文件 - ModuleNotFoundError : No module named '__main__.char' ; '__main__' is not a package,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48894580/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com