【问题标题】:How to correctly import module in Python如何在 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 修改的方法
  • 如果你阅读了答案,有一个:stackoverflow.com/a/50194143/12134355
  • 但这涉及到一个虚拟环境,并使用 pip 安装 my_module。没有更简单的方法吗?
  • 嗯,你应该已经为每个项目有一个 venv。不,如果有更简单的方法我们会告诉你而不是给出艰难的方法,不是吗?

标签: python unit-testing python-import python-module


【解决方案1】:

您可以设置 PYTHONPATH。 Python 将在您添加到 PYTHONPATH 变量的所有路径中查找模块。 如果您不想每次都重新设置,可以将其保存在 bashrc 中。 如果你喜欢 conda env,你也可以像这样向你的 env 添加变量:

conda env config vars set PYTHONPATH=value

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-04-29
  • 1970-01-01
  • 2020-01-10
  • 2017-02-23
  • 2019-08-31
  • 1970-01-01
  • 1970-01-01
  • 2021-03-13
相关资源
最近更新 更多