Python自定义模块导入问题

时间:2021-03-26 23:37:41

标签: python import

test/
    scripts/
            __init__.py
            a.py
            main.py

上面的结构是我用来测试的。

#Gives 0 warnings or errors before running code
from scripts import a #ModuleNotFoundError: No module named 'scripts'

#Gives 1 warning (import not resolved)
import a #runs fine

为什么会这样?我该如何解决?

1 个答案:

答案 0 :(得分:0)

“脚本”模块,正如您所声明的,只有在您的 PYTHONPATH 将 .../test 作为可能性之一时才会被找到。如果您在 venv 中运行,您可以创建一个包含所需路径的 .pth 文件,然后将其粘贴在 venv/lib/[python-version]/site-packages 中。如果不是,只需编辑 PYTHONPATH 环境变量(不知道是什么操作系统;如何做取决于该信息)。如果您从脚本目录运行脚本(我假设为 main),则仅使用“import a”就可以正常工作,因为 cwd 通常已经是路径的一部分。