Python ModuleNotFoundError:没有名为“model”的模块

Python ModuleNotFoundError:没有名为“model”的模块,python,import,module,package,python-import,Python,Import,Module,Package,Python Import,我有一个具有以下结构的包: model\ __init__.py (from model.main_trainer import *, etc.) main_trainer.py snn.py splitter.py main_trainer.py脚本至少接受三个参数作为输入: #main_trainer.py import numpy as np # Linear algebra import pandas as pd # Data wrangling im

我有一个具有以下结构的包:

model\
    __init__.py (from model.main_trainer import *, etc.)
    main_trainer.py
    snn.py
    splitter.py
main_trainer.py脚本至少接受三个参数作为输入:

#main_trainer.py

import numpy as np # Linear algebra
import pandas as pd # Data wrangling
import re # Regular expressions

import matplotlib


# Avoid plotting graphs
matplotlib.use('Agg')

# Custom dependencies
from model.snn import *
from model.splitter import *

def main_trainer(dataset_name, model_dict = None, train_dict = None,
                 how = 'k-fold cross-validation', save = True):
    etc.

if __name__ == '__main__':
    dataset_name, model_dict, train_dict, how = sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]
    main_trainer(dataset_name, model_dict, train_dict, how)
但是,如果我在终端中运行以下命令:

python main_trainer.py dataset_name model_dict train_dict 'k-fold cross-validation'
我得到以下错误:

Traceback (most recent call last):
  File "main_trainer.py", line 17, in <module>
    from model.snn import *
ModuleNotFoundError: No module named 'model'
我得到这个错误:

Traceback (most recent call last):
  File "main_trainer.py", line 17, in <module>
    from .snn import *
ModuleNotFoundError: No module named '__main__.snn'; '__main__' is not a package
Traceback (most recent call last):
  File "/home/kdqm927/miniconda3/envs/siamese/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kdqm927/miniconda3/envs/siamese/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/projects/cc/kdqm927/PythonNotebooks/model/main_trainer.py", line 17, in <module>
    from .snn import *
ImportError: attempted relative import with no known parent package
然后我得到这个错误:

Traceback (most recent call last):
  File "main_trainer.py", line 17, in <module>
    from .snn import *
ModuleNotFoundError: No module named '__main__.snn'; '__main__' is not a package
Traceback (most recent call last):
  File "/home/kdqm927/miniconda3/envs/siamese/lib/python3.7/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/kdqm927/miniconda3/envs/siamese/lib/python3.7/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/projects/cc/kdqm927/PythonNotebooks/model/main_trainer.py", line 17, in <module>
    from .snn import *
ImportError: attempted relative import with no known parent package
我检查了这些帖子,但没有结果: ,

将脚本/模块路径附加到sys模块,然后导入子模块

sys.path.append('/path/to/your/model/modules/')
希望这能解决你的问题

编辑:

修改了您的主培训师文件


所以我应该把它添加到每个模块中,也就是导入特定库的地方。从model.snn import*和model.splitter import*so sys.path.append'/path//model//py脚本中的sys.path.append'/path//model/main\u trainer/'或sys.path.append'/path//model/snn/'和sys.path.append'/path//model/splitter/“如果我添加sys.path.append'path/to/my/projects/”,包含模型文件夹的文件夹,其中依次包含模块,我最后得到了回溯最新调用:文件main_trainer.py,第18行,from.snn import*ModuleNotFoundError:No module name'main.snn';'main不是一个包您可能正在使用mail.snn,我不能说没有看到您的代码,但我做了一次编辑,您可以指向model文件夹,它们分别导入snn和splitter
#main_trainer.py

import numpy as np # Linear algebra
import pandas as pd # Data wrangling
import re # Regular expressions
import sys
import matplotlib


# Avoid plotting graphs
matplotlib.use('Agg')

# Custom dependencies
sys.path.append('/projects/cc/kdqm927/PythonNotebooks/model/') #folder which contains model, snn etc.,
from snn import *
from splitter import *