【问题标题】:How to fix 'Import Error: No module named' in python2.7如何修复 python2.7 中的“导入错误:未命名模块”
【发布时间】:2020-07-29 09:30:16
【问题描述】:

将模块放入现有项目时出现导入错误。 文件夹结构如下:

model
  /new_sub_model
     __init__.py
     new_file.py
  /sub_model
     __init__.py
     file.py
  __init__.py
  file_to_import.py

new_sub_model 及其下的文件是我写的,而sub_model之前存在,new_file.py和file.py都导入file_to_import.py,在file.py中有效,在new_file中无效.py,出现标题显示的错误。每个文件都有 init.py.

下面列出的导入语句

    from model.file_to_import import function
the error traceback lists below

        from model.file_to_import.py import function
    File "/usr/lib64/python2.7/site-packages/gevent/builtins.py", line 93, in __import__
        result = _import(*args, **kwargs)
    ImportError: No module named file_to_import

我不知道问题是什么以及如何解决它。很高兴得到您的答复。

已编辑:我通过 using 语句解决了这个问题

    from..file_to_import import function

这解决了我的问题,但我不知道为什么。

【问题讨论】:

  • 你能复制你的导入语句吗?
  • 请提供完整的回溯和至少相关代码。
  • @EliranTurgeman 我只是编辑问题并添加导入语句。谢谢!
  • 这个导入语句写在哪个文件上?
  • @EliranTurgeman 在新文件中。 new_sub_model 被添加到项目中。

标签: python python-import importerror


【解决方案1】:

您的模型目录中没有__init__.py,因此它不能用作模块。在工作文件中,必须有一些东西将文件夹附加到 Python 查找模块的路径。没有任何更具体的结构和代码,这是我的最佳猜测。

【讨论】:

  • 项目中有__init__文件,抱歉没有添加到问题中,我已经编辑了问题。谢谢你的回答。
【解决方案2】:

Python 将当前目录用于导入语句,因此如果您尝试从“上”目录导入某些内容,它将找不到它。 只需在 import 语句之前使用这些行:

import sys
sys.path.insert(1, '../')

并将导入语句更改为from file_to_import import function

【讨论】:

  • 但是 sub_model.fle.py 中的语句是如何工作的? new_file.py 和 file.py 中的 import 语句是相同的。在 file.py 中没有您发布的代码。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-22
  • 1970-01-01
  • 2019-12-17
  • 2020-10-05
  • 2019-11-01
  • 2017-04-07
相关资源
最近更新 更多