Python 找不到模块错误,因为路径被解释为模块

Python 找不到模块错误,因为路径被解释为模块,python,anaconda,Python,Anaconda,我下载了一个具有以下一般结构的软件包: - pkg - runs - __init__.py - script.py - data - subdata - __init__.py - datascript.py 当我尝试使用从Anaconda提示符运行script.py时 C:\pkg>python runs/script.py 我得到了错误 Traceback (most recent call last):

我下载了一个具有以下一般结构的软件包:

 - pkg
   - runs
     - __init__.py
     - script.py
   - data
     - subdata
       - __init__.py
       - datascript.py
当我尝试使用从Anaconda提示符运行
script.py

C:\pkg>python runs/script.py
我得到了错误

Traceback (most recent call last):
  File "runs/script.py", line 4, in <module>
    from data.subdata import *
ModuleNotFoundError: No module named 'data.subdata'
回溯(最近一次呼叫最后一次):
文件“runs/script.py”,第4行,在
从data.subdata导入*
ModuleNotFoundError:没有名为“data.subdata”的模块
显然,python将
data.subdata
解释为一个模块而不是路径


如何修复此问题?

在sys.path->
sys.path.append('path\u to\u module')中添加路径。

  • 导入语句在sys.path中搜索路径列表
  • sys.path始终包括在上调用的脚本的路径 命令行,并且与命令行上的工作目录无关
  • 导入包在概念上与导入该包相同 包的init.py文件
阅读更多内容:

在sys.path->sys.path.append('path_to_data')中添加路径,因此我必须执行sys.path.append('data/subdata'),因为import语句来自data.subdata import*?由于包附带了uu init_upy文件(请参见问题中的pkg结构),所以没有其他方法可以做到这一点吗?我发现把每个模块的每一个路径添加到Sy.PATH都是非常繁琐的,甚至不工作。如果你想打开上面的链接,请我找到“把一个脚本的文件夹转换成一个可导入的模块包”,你能举个例子吗?“sys.path始终包括在命令行上调用的脚本的路径,并且与命令行上的工作目录无关”?