如何在 Python 中正确导入模块
Posted
技术标签:
【中文标题】如何在 Python 中正确导入模块【英文标题】:How to correctly import module in Python 【发布时间】:2021-02-04 13:19:21 【问题描述】:结构如下:
-app-l1
-src
-__init__.py
-my_module.py
-tests
-__init__.py
-test_my_module.py
我正在尝试将所有函数从 my_module
导入到 test_my_module.py
以进行单元测试。
我试过了:
from ..src.my_module import my_module
返回
ImportError: attempted relative import with no known parent package
还尝试过:
from src.my_module import my_module
返回
ModuleNotFoundError: No module named 'src.my_module'
打印出 sys.path
表明它只在 tests
目录中查找。
如何正确指定查找模块的位置?
任何帮助都会非常好! 谢谢
【问题讨论】:
这能回答你的问题吗? Importing modules from parent folder @Gugu72 我正在尝试找到一种不包括 sys.path 修改的方法 如果你阅读了答案,有一个:***.com/a/50194143/12134355 但这涉及到一个虚拟环境,并使用 pip 安装 my_module。没有更简单的方法吗? 嗯,你应该已经为每个项目有一个 venv。不,如果有更简单的方法我们会告诉你而不是给出艰难的方法,不是吗? 【参考方案1】:您可以设置 PYTHONPATH。 Python 将在您添加到 PYTHONPATH 变量的所有路径中查找模块。 如果您不想每次都重新设置,可以将其保存在 bashrc 中。 如果你喜欢 conda env,你也可以像这样向你的 env 添加变量:
conda env config vars set PYTHONPATH=value
【讨论】:
这并没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review以上是关于如何在 Python 中正确导入模块的主要内容,如果未能解决你的问题,请参考以下文章