【发布时间】:2021-11-30 14:57:51
【问题描述】:
我已经为此奋斗了好几个星期,阅读了很多(过时的)文章,尝试了很多不同的建议解决方案,但都没有成功。而且我仍然相信我不会尝试做一些困难的事情......
我有以下文件夹结构
├── script.py
├── lib
│ ├── lonlatboxes.py
│ ├── utils.py
我正在使用文件夹lib 来存储script.py 中使用的一些库。
在utils.py我有
from sqlalchemy import create_engine # python package
from lonlatboxes import lonlatboxes # my module
在lonlatboxes.py我有
lonlatboxes = {
'Africa': [-26.0, 63.0, -41.0, 37.0],
}
在script.py 我愿意
import lib.utils
这会导致错误
1 from sqlalchemy import create_engine
----> 2 from lonlatboxes import lonlatboxes
3
ModuleNotFoundError: No module named 'lonlatboxes'
我猜是因为 sys.path 已解决 w.r.t.父文件夹而不是 lib。注意lib.utils文件被找到了!
我应该如何解决这个问题?或者......我是否完全反对 Python 导入?
我认为添加sys.path 的路径不应该是正确的解决方案。
请注意,我不想创建包。我只有一组脚本和小型库,并希望避免将所有内容都放在同一个文件夹中,而是将它们分开,以便我可以有更多的订单:)
【问题讨论】:
-
尝试将空的init.py添加到lib文件夹
-
也许可以试试
from lib.lonlatboxes import lonlatboxes(在utils.py)?这似乎对我有用。我认为这条线是在script.py文件夹中调用的。我认为使用lib.不会借用你,除非你希望用户直接打开utils.py。在这种情况下,您可以通过在utils.py中键入以下内容来检测它:if __name__ == "__main__":from lonlatboxes import lonlatboxes else: from lib.lonlatboxes import lonlatboxes -
init.py 不起作用。我不知道为什么很多文章都建议它作为解决方案,我相信它过去曾经有效。
标签: python python-import