Python/Pytest在一个独立于目录的文件中导入模块?

2024-04-26 12:47:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用我的项目设置pytest,目录结构如下所示。你知道吗

├── 
├── README.md
├── my_code
│   ├── __init__.py
│   ├── __main__.py
│   └── target_file.py
└── tests
│   ├── __init__.py
│   └── test_one.py

在我的测试中_一个.py我正在用导入target_file.py

import sys
import os
sys.path.insert(0, "my_code")

如果我从根目录中的命令行运行pytest,这就可以了。但是,如果我cd进入另一个目录,比如进入tests,我会得到一个错误,说模块my_code没有属性bla bla bla。我假设这是因为我导入的方式取决于我在目录中的实际位置。因此,如果我在tests目录中,那么它将尝试从/root/tests/my_code导入,而/root/tests/my_code并不存在。有没有办法将target_file.py导入test_one.py,这样无论我在哪里,我都可以在命令行上运行pytest,这样我的测试就可以运行了?现在,我必须转到根目录,这样导入才能正常工作。你知道吗


Tags: pytestimport目录targetinitpytestmy