【问题标题】:Can't import own Python module无法导入自己的 Python 模块
【发布时间】:2019-11-15 02:58:06
【问题描述】:

我目前在 anaconda 上运行 python 3.6。我有一个项目结构,其中(test/lib/yolo/yolo_model.py)(test/car/detection/cpu_yolo_detector.py)

我从测试目录运行我的主目录。我的 main 现在从 withing (test/car/detection) 调用脚本 cpu_yolo_detector.py。

我想从 cpu_yolo_detector.py 访问 yolo_model.py

"from lib.yolo.yolo_model import YoloModel" 但我得到“no module named lib.yolo”。

在 main.py 的开头,我将 ('C:\\Users\\Name\\Desktop\\test\\lib\\yolo') 添加到 sys.path 中,但我仍然收到该错误。

我尝试了 python 3.6 和 3.7 以及虚拟环境和没有虚拟环境。如果我使用 PyCharm 运行它,一切似乎都可以工作,但从终端却不行。

【问题讨论】:

  • 您是否尝试将目录路由添加到 PYTHONPATH 变量?
  • 是的,那也没用

标签: python import module package


【解决方案1】:

看来test/ 是您项目结构的根。如果你愿意

from lib.yolo.yolo_model import YoloModel

要工作,那么包含lib/的目录必须在sys.path中。

尝试将'C:\\Users\\Name\\Desktop\\test' 添加到 sys.path。

【讨论】:

  • 老实说,我太愚蠢了,没有看到。非常感谢现在工作。
【解决方案2】:

尽量把两个文件(模块和主文件)放在同一个目录下。如果模块名称是 helpermodule 主要写:

import helpermodule
#or import a specific class/method you might need

【讨论】:

  • 这行不通,因为这是一个相当庞大的项目,有很多脚本从不同的目录调用。我最终不得不把所有东西都放在一个文件夹中,我不想这样做。
  • 提供一个例子是更好的回答方式,而不是只写一个句子
  • 它非常不言自明,但可以肯定的是,我会更新并提供一个示例。
猜你喜欢
  • 2012-03-12
  • 1970-01-01
  • 2015-11-11
  • 2016-05-14
  • 1970-01-01
  • 1970-01-01
  • 2018-06-21
  • 2021-05-18
  • 2013-08-01
相关资源
最近更新 更多