"no module named..." 当 运行 这个 python 代码

"no module named..." when running this python code

我不知道是什么导致了这个错误,这是我能得到的最简单的,但是 SO 提示我我的问题不符合他们的质量标准,所以我必须 post 这个更长的介绍。

#===
# my_script.py
import myModule

#===
# myModule\__init__.py
import sys
from my_def import *

class MyModule:
  def __init__(self):
    pass

#===
# myModule\my_def.py
def my_def():
  pass

Traceback (most recent call last):
  File "my_script.py", line 1, in <module>
    import myModule
  File "D:\test\myModule\__init__.py", line 2, in <module>
    from my_def import *
ImportError: No module named 'my_def'

你可以试试这个:

sys.path.append("path_of_script")

__init__.py中,在my_def前加一个.. 意味着它应该在与脚本本身相同的文件夹中查找文件,而不是相对于 my_script.py.

from .my_def import *