我如何在python 3.6.9中导入并行包

问题描述 投票:0回答:1

我正在创建具有以下文件夹结构的项目。

其中带有'src'软件包的项目。 'models'包和'tests'包​​都在'src'内,并且每个包内都有自己的模块。

问题:我正在尝试将包“模型”导入“测试”包内的模块中。

这是文件夹结构:

-project
    -src
       -models
           -__init__.py
           -ArmModel.py
       -tests
           -test_arm_model.py

ArmModel.py定义了一个类:

class ArmModel:
    def __init__(self, definition='std def'):
        self.definition = definition

并且test_arm_model.py(我有问题的地方)需要从模型导入ArmModel进行测试:

import unittest
from src import models


class TestArmModel(unittest.TestCase):
    def test_arm_model(self):
        arm = models.ArmModel('arm')
        self.assertEqual(arm.definition, 'arm')


if __name__ == '__main__':
    unittest.main()

我无法从“测试”模块内的“模型”导入“ Arm.py”。

追踪(最近通话):文件“ ./src/tests/test_arm_model.py”,第2行,在从src导入模型ModuleNotFoundError:没有名为“ src”的模块

尝试1:我尝试使用以下代码,并得到相同的错误

from src import models

我试图直接按照以下步骤获取类,并得到相同的错误

from src.models.ArmModel import ArmModel

而且我试图操纵sys.path,

import sys
sys.path.append('/home/jamal/dev/tcc/src/')
from src.models.ArmModel import ArmModel

并且出现相同的错误

from src.models.ArmModel import ArmModel
ModuleNotFoundError: No module named 'src'

尝试时

sys.path.append('/home/jamal/dev/tcc/src/models/')

sys.path.append('/home/jamal/dev/tcc/src/models/ArmModel')

来自PyCharm IDE的自动完成功能找不到该软件包,并且我在代码中遇到了相同的错误。

我还试图将'../'附加到sys.path。当我尝试下面的代码时,出现ModuleNotFoundError:没有名为“ src”的模块

import sys
sys.path.append('../')
from src.models.ArmModel import ArmModel

[当我尝试将导入更改为]时>

from models.ArmModel import ArmModel

IDE在模型和ArmModel下显示未解析的引用,并显示错误

我正在创建具有以下文件夹结构的项目。一个内部带有“ src”包的项目。 'models'包和'tests'包​​都在'src'内,并且每个包都有自己的模块...

python python-unittest
1个回答
0
投票

为了解决此问题,我将路径附加到项目根文件“ TCC”

© www.soinside.com 2019 - 2024. All rights reserved.