我知道这个问题已经被问了很多,但我不知道自己在哪里搞砸。我正在尝试导入模块FoodDelivLibrary.Utils,但是当我在树莓派上运行它时,它说“模块不存在”,这很奇怪,因为它在pycharm中可以正常工作,但是在使用终端时会遇到issurs。
这是我的file structure
DriveTrain.py文件正在尝试从Serial.py文件访问函数,但我不断收到错误消息“ No module named'FoodDelivLibrary'”。任何帮助将不胜感激。谢谢!
我在每个文件夹中都有一个 init .py。
运行时遇到问题的导入是:
from FoodDelivLibrary.Utils.Serial import Serial
如果您想更清晰地查看文件结构,请点击这里:https://github.com/archishou/FoodDeliv
答案 0 :(得分:0)
您的文件夹中缺少__init__.py
(以表明它们是可导入的程序包)。
app
├── __init__.py
├── a
│ └── __init__.py
└── b
├── c
│ ├── __init__.py
│ └── drive_train.py
└── d
├── __init__.py
└── serial.py
在app/__init__.py
中包含from app.b.d import serial
。
在app/b/d/serial.py
中包含from app.b.c import drive_train
。
在app/b/c/drive_train.py
中包含print("imported!")
。
从app
导入app/..
打印出已导入!
我将让您将此示例与您自己的代码关联起来。
答案 1 :(得分:0)
尝试将其添加到DriveTrain.py
文件的顶部:
import sys, os
sys.path.insert(1, os.path.join(sys.path[0], '..'))
from Utils.Serial import Serial
它将路径添加到当前文件上方。