【发布时间】:2023-11-22 04:37:01
【问题描述】:
我检查了许多 SO 问题,但没有帮助我解决我的问题。 我有一个文件夹结构:
|--test/foo.py
|--library/ #This is set as my PYTHONPATH
|--|--file1.py
|--|--folder1
|--|--|--util.py
我正在尝试从foo.py 访问util.py。
注意:此时我可以从测试文件夹访问库下的所有文件。但是每当我尝试访问 library/folder1/util.py 时,它都会出现错误提示 "ImportError: No module named util"
到目前为止我已经尝试过了:
foo.py
import os
import sys
import file1
sys.path.insert(0, '/folder1/')
import util
util.function_name
#do something
这种方法有效,但我无法使用“library/file1.py”。 有没有更清洁的方法来避免这种情况?
注意:这些只是文件夹结构(我维护以区分文件),而不是模块,(所以我相信我不能使用 __init__.py 和类似 import utils.functionname 的东西)
【问题讨论】:
-
为什么不希望库成为一个包?我会争辩说,如果它不应该是一个包,那么
folder1应该是library的兄弟。否则,如果它真正是一个库,那么library和folder1应该有一个__init__.py允许您将library添加到PYTHONPATH,然后简单地导入:library.folder1.util.functionname跨度> -
@OozeMeister - 我尝试了你解释的方式。所以现在我在库文件夹 1 下有 init.py。但我仍然无法使用我想要的功能。
标签: python python-2.7 import importerror pythonpath