未加载父模块“modelio”,无法执行相对导入

时间:2021-01-15 17:08:18

标签: python import package python-import importerror

我知道已经有很多与这个类似的问题,但不幸的是我还没有找到如何解决我的问题。

我正在尝试从以下位置运行项目:https://github.com/XJTUWYD/TWN/tree/master/models

简而言之,项目的结构如下: (我没有包含看起来不必要的文件和文件夹。您可以在上面的链接中查看完整的项目)

  Project
  |___ __init__.py
  |___ main.py
  |___ nnUtils1.py
  |___ models
       |___ __init__.py
       |___ model.py
       |___ alexnet.py
       |___ BNN_cifar10.py

然后在 main.py 中我有以下代码:

17: FLAGS = tf.app.flags.FLAGS
18: tf.app.flags.DEFINE_integer('batch_size', 128,
19:                            """Number of images to process in a batch.""")
20: tf.app.flags.DEFINE_string('model', 'model',
21:                           """Name of loaded model.""")

..... (中间有一些代码)

216: def main(argv=None):  # pylint: disable=unused-argument
217:     if not gfile.Exists(FLAGS.checkpoint_dir):
218:         gfile.DeleteRecursively(FLAGS.checkpoint_dir)
219:         gfile.MakeDirs(FLAGS.checkpoint_dir)
220:         model_file = os.path.join('models', FLAGS.model + '.py')
221:         assert gfile.Exists(model_file), 'no model file named: ' + model_file
222:        gfile.Copy(model_file, FLAGS.checkpoint_dir + '/model.py')
223:    m = importlib.import_module('.' + FLAGS.model, 'modelio')

225: data = get_data_provider(FLAGS.dataset, training=True)

226: train(m.model, data,
227:      batch_size=FLAGS.batch_size,
228:       checkpoint_dir=FLAGS.checkpoint_dir,
229:       log_dir=FLAGS.log_dir,
230:       num_epochs=FLAGS.num_epochs)

232: if __name__ == '__main__':
234:     tf.app.run()

现在,如果我从项目主目录 TWN/ 执行脚本 main.py:

python main.py

然后我得到以下错误:

 File "main.py", line 235, in <module>
    tf.app.run()
  File "C:\Python\lib\site-packages\tensorflow\python\platform\app.py", line 48, in run
    _sys.exit(main(_sys.argv[:1] + flags_passthrough))
  File "main.py", line 223, in main
    m = importlib.import_module('.' + FLAGS.model, 'modelio')
  File "C:\Python\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 973, in _gcd_import
  File "<frozen importlib._bootstrap>", line 923, in _sanity_check
SystemError: Parent module 'modelio' not loaded, cannot perform relative import

你能帮忙吗?提前致谢!

0 个答案:

没有答案