gpt4 book ai didi

python - 在父文件夹中导入 python 包时出错

转载 作者:行者123 更新时间:2023-11-28 22:49:37 25 4
gpt4 key购买 nike

我有以下目录结构:

.
├── Project
│   ├── __init__.py
│   ├── Project.py
└── tests
├── bootstrap.py
├── __init__.py
└── unit
└── test_utils.py

我正在从项目的根目录运行 $ python tests/bootstrap.py但我收到错误 ValueError: Attempted relative import beyond toplevel package .

这是test_utils.py的内容.

import unittest
import sys

from ... Project.Project import *

class TestUtils (unittest.TestCase):

def test_file_changes (self):
# some_function lives in Project.py
var = some_function()
self.assertEqual(200, var)

bootstrap.py文件没有任何特殊情况,只是加载测试。

import unittest
from unit.utils import TestUtils

def main ():
utils= unittest.TestLoader().loadTestsFromTestCase(TestUtils)
unittest.TestSuite([utils])
unittest.main(verbosity=2)

if __name__ == '__main__':
main()

有人能看出这里有问题吗?

最佳答案

导入层次结构(在您的情况下从本地目录导入时)从目录中查看包和模块,您运行程序,而不是从导入文件位置。

因此请遵循以下规则:

  1. 计划始终从项目的根目录运行测试
  2. 将你的测试代码放入test目录
  3. 您的所有测试套件都应导入,就好像位于项目的根目录中一样。

在你的情况下只是改变

from ... Project.Project import *

from Project.Project import *

关于python - 在父文件夹中导入 python 包时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23596937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com