在python中导入具有复杂项目结构的模块

时间:2017-04-18 19:44:16

标签: python import

我遇到了与我的项目有关的各种导入问题。我一直在寻找类似的问题,并试图将这些问题放在一起。

我的项目布局类似如下所示:

.
├── bar.py
├── data_processor.py
├── foo.py
├── __init__.py
├── main.py
├── processors
│   ├── bar_processor.py
│   ├── foo_processor.py
│   └── __init__.py
├── requirements.txt
├── tests
│   ├── __init__.py
│   ├── test_data
│   │   ├── test_data_1.json
│   │   └── test_data_2.json
│   ├── test_foo.py
│   └── test_processor.py
└── utils
    ├── api.py
    ├── general.py
    └── __init__.py

我遇到了以下问题,并希望了解如何解决这些问题。

  1. 从其他地方导入python模块以用于单元测试
  2. 如上面的项目结构所示,我在名为' tests'的目录中进行了单元测试。在这个例子中,我有两个带有测试的python文件,test_foo.pytest_processor.py。对于test_foo.py,我需要导入以下内容:

    • foo.py
    • bar.py
    • utils的/ general.py
    • utils的/ api.py

    为了做到这一点,我的导入语句需要做什么?

    1. 从其他地方导入python模块,以便在常规模块
    2. 中使用

      第二个导致我遇到麻烦的导入场景是我需要从项目的其他地方导入功能。例如,作为bar_processor.py的一部分,我需要导入以下内容:

      • processor.py
      • bar.py
      • utils的/ general.py

      为了做到这一点,我的导入语句需要做什么?

      其他一些信息

      • 我没有定义PYTHONPATH环境变量
      • 我希望能够通过命令行以及IDE(PyCharm,在我的情况下)运行python单元测试
      • 常规python文件作为各种cron作业的一部分从命令行执行。

0 个答案:

没有答案