没有名为“regression_testing.common”的模块 Python Sphinx

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

Repo 就是这样,有 2 个用于“单独模块”的文件夹

regression_testing_package
regressin_testing_common
,但两者共享相同的命名空间
regression_testing
都使用自己的诗歌配置进行管理,并且都有自己的 sphinx 文档配置。

在我们的Python代码中,

regression_testing_package
内部有一些函数使用来自
regression_testing_common
的函数以及像
from regression_testing.common.deprecation import deprecated
这样的导入,工作没有任何问题

这是文件夹结构

Root - repo is called regression_testing_package
  regression_testing_package (managed using poetry
    src
      regression_testing
        folder_a
        folder_b
    docs
      _source (all sphinx config/files are in here and publish ../ to docs)
  regression_testing_common
    src
      regression_testing
        common
    docs
      _source (all sphinx config/files are in here and publish ../ to docs)

尝试为

regression_testing_package
构建文档时,autodoc 会发出这样的警告
WARNING: autodoc: failed to import module 'pipelines' from module 'regression_testing.azure'; the following exception was raised: No module named 'regression_testing.common'

因此无法为管道模块构建文档,因为文件顶部包括

from regression_testing.common.deprecation import deprecated
,因为我正在努力弃用某些功能。

我的

conf.py
包含以下内容(包括调试行)

import sys
import toml
from pathlib import Path

src_path = Path(__file__).resolve().parents[2] / 'src'
regression_testing_path = Path(__file__).resolve().parents[3] / 'regression_testing_common' / 'src' 

print(f"src_path exists: {src_path.exists()}, path: {src_path}")
print(f"regression_testing_path exists: {regression_testing_path.exists()}, path: {regression_testing_path}")

sys.path.insert(0, str(src_path))
sys.path.insert(1, str(regression_testing_path))

os.system("pip list")

运行时

make html
我可以从 2 个打印语句中看到,添加的路径确实指向两个模块的
src
文件夹

src_path exists: True, path: C:\Users\Karl.Hudgell\Documents\Work\HE\regression-testing-package\regression_testing_package\src
regression_testing_path exists: True, path: C:\Users\Karl.Hudgell\Documents\Work\HE\regression-testing-package\regression_testing_common\src

pip list
命令似乎也显示模块已安装

PyYAML                        6.0.1
recommonmark                  0.7.1
regression-testing-common     0.1.2
regression-testing-package    3.0.9a1  C:\Users\Karl.Hudgell\Documents\Work\HE\regression-testing-package\regression_testing_package
reportlab                     4.0.7
requests                      2.31.0

但无论我做什么,我似乎都无法生成文档来查看

regression-testing-common

中的功能
python python-sphinx
1个回答
0
投票

删除那些 sys.path.insert() 黑客行为。 确保在启动解释器或文档工具之前正确设置 PYTHONPATH 环境变量。

使用 python -m site 帮助调试配置问题。

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