我在Windows 10上使用Python 3.6.我在同一目录中有2个.py文件char.py,并且char_user.py,如下所示:
char.py:
# char.py
import cv2
#######################################################################################################################
class Char:
# constructor #####################################################################################################
def __init__(self):
self.contour = None
self.centerOfMassX = None
self.centerOfMassY = None
# end def
# end class
Run Code Online (Sandbox Code Playgroud)
char_user.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()
Run Code Online (Sandbox Code Playgroud)
无论我尝试什么,在char_user.py我试图导入文件char.py,类Char的行,我得到错误:
ModuleNotFoundError: No module named '__main__.char'; '__main__' is not a package
Run Code Online (Sandbox Code Playgroud)
以下是我尝试使用import语句的一些方法char_user.py:
from .char import Char
from . import Char
import Char
import char
Run Code Online (Sandbox Code Playgroud)
我__init__.py在同一目录中尝试过使用和不使用空.
我已经查阅了这些帖子,但没有人能够提供解决方案:
ModuleNotFoundError:__main__不是包是什么意思?
ModuleNotFoundError:没有名为'__main __.xxxx'的模块; '__main__'不是包
这是我在Python 3中第一次尝试导入我在同一目录中编写的脚本(在Python 2中多次完成此操作而无需担心).
有没有办法做到这一点?我错过了什么?
小智 6
我能够使用它from char import Char,因为您正在尝试Char从脚本中导入类char。
据我所知,from .char import Char仅当两个文件都是python模块(具有自己的__init__.py)的一部分时才使用该行,而事实并非如此。在这种情况下,请.char显式引用char.py同一模块文件夹中的文件,而不是引用从已安装到PYTHONPATH的其他模块的导入。
| 归档时间: |
|
| 查看次数: |
9057 次 |
| 最近记录: |