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始终包括在命令行上调用的脚本的路径,并且与命令行上的工作目录无关”?