- 我正在为日常工作编写一组python 脚本。
- 为了避免重复,我们想利用import来分享一些工具。
- 为了保留
repository maintainable
,我们有子文件夹来收集用于特定目的的脚本,并lib-folder
在每个子文件夹中保留共享功能。
结构看起来像这样。
root
├── lib
│ ├── hello.py
└── sub
├── hello_user.py
└── lib
__init__.py files exist, but are filtered for better readability
hello_user.py 中的代码是这样的:
from lib.hello import hello
hello()
在 hello.py 中:
def hello():
print("Hello")
- PYTHONPATH设置为
root folder
. - 当我尝试执行“python sub/hello_user.py”时,出现错误“ImportError: No module named hello”。如果我将 sub/lib 重命名为 sub/lib_hide,我会得到预期的输出“Hello”。
- 如何让 python 从root/lib而不是root/sub/lib导入?
- 设置
PYTHONPATH to "root/.."
并且importing "root.lib"
可以工作,但可能不是一个可行的选项(需要使用脚本和所有现有脚本对所有设置进行更改)。 - 我更喜欢只修改
import statement
. 相对路径会很好,但是我如何将 a 命名relative path
为父文件夹?“..”。lib.hello不起作用。