【发布时间】:2021-01-28 21:25:31
【问题描述】:
我已经用 Python 写了 4 年了,但我仍然没有完全理解导入系统。我发现即使你这样做,相对导入也会失败exactly by the book。当我在 Jupyter Lab/Notebook 工作时尤其如此。
许多人建议附加到 sys.path 变量来解决这个问题(尽管我不知道为什么导入不能像宣传的那样工作)。所以我决定阅读整个sys.path 的工作原理,并阅读它是这样初始化的:
6.1.2。模块搜索路径
当导入名为 spam 的模块时,解释器首先搜索具有该名称的内置模块。如果没有找到,它会在变量 sys.path 给出的目录列表中搜索名为 spam.py 的文件。 sys.path 从这些位置初始化:
- 包含输入脚本的目录(或未指定文件时的当前目录)。
- PYTHONPATH(目录名称列表,与 shell 变量 PATH 语法相同)。
- 依赖于安装的默认值。
第一个项目符号是什么意思?请注意本节前一段中缺少“输入脚本”。是指spam.py吗?如果是这样,为什么要使用“输入”这个词。我没有看到任何正在发生的事情的输入。
任何人都可以澄清这种异常模糊/模棱两可的语言吗?
【问题讨论】:
标签: python import path python-import