繁体   English   中英

Sphinx无法导入子包

Sphinx fails to import subpackages

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个结构如下的项目目录:

|--sphinx
   |--mypackage
     |--__init__.py
     |--core
        |--__init__.py
        |--program.py
        |--foo.py
     |--factory
        |--__init__.py
        |--basefactory.py

首先,我sphinx-apidoc使用以下参数运行sphinx-apidoc

c:\Debug\sphinx>sphinx-apidoc -o "C:\Debug\Sphinx" "C:\Debug\Sphinx\mypackage" -f --full

这将在“输出”目录中创建文件夹结构,.bat和.rst文件等。 目前很好。

在此处输入图片说明

当我尝试运行make html ,出现错误/警告,指示:

WARNING: autodoc: failed to import module 'mypackage'; the following exception was raised:
No module named 'mypackage'
WARNING: autodoc: failed to import module 'core.foo' from module 'mypackage'; the following exception was raised:
No module named 'mypackage'
WARNING: autodoc: failed to import module 'core.program' from module 'mypackage'; the following exception was raised:
No module named 'mypackage'
WARNING: autodoc: failed to import module 'core' from module 'mypackage'; the following exception was raised:
No module named 'mypackage'
WARNING: autodoc: failed to import module 'factory.basefactory' from module 'mypackage'; the following exception was raised:
No module named 'mypackage'
WARNING: autodoc: failed to import module 'factory' from module 'mypackage'; the following exception was raised:
No module named 'mypackage'

其他类似的问题( 123 )建议修改sys.path.insert在声明中conf.py文件。

我试过使用:

sys.path.insert(0, os.path.abspath)

但是结果是一样的。

如果我添加了包的根路径( sys.path.insert(0, 'c:\\debug\\sphinx') ,我从Sphinx得到的错误更少,这一次只与您的子包corefactory

WARNING: autodoc: failed to import module 'program' from module 'mypackage.core'; the following exception was raised:
No module named 'foo'
WARNING: autodoc: failed to import module 'basefactory' from module 'mypackage.factory'; the following exception was raised:
No module named 'core'

最终,我可以通过在conf.py文件中插入所有路径来生成conf.py

sys.path.insert(0, 'c:\debug\sphinx')
sys.path.insert(0, 'c:\debug\sphinx\mypackage')
sys.path.insert(0, 'c:\debug\sphinx\mypackage\core')
sys.path.insert(0, 'c:\debug\sphinx\mypackage\factory')

但似乎我在这里做错了。 有没有我可以添加到一个单一的路径sys.path ,可以让没有输入错误这项工作? 我是否必须对所有打包/子打包路径进行硬编码? 否则,我做错了什么?

问题暂未有回复.您可以查看右边的相关问题.
3 无法从父包导入子包

我正在一个项目中,我有需要导入主软件包的子软件包,但是由于某种原因,python解释器找不到该子软件包。 在搜寻互联网之后,我找不到任何解决方案,尽管我可能会补充说,关于python导入系统的很多问题都没有为我提供任何有用的信息。 这是我运行的一个简单脚本的回溯,该脚本是在我使用setup. ...

5 Sphinx无法导入任何东西

我正在尝试用sphinx记录我的一个项目。 我在所有模块和文件中都使用了autodoc字符串。 我使用sphinx-apidoc为我的代码自动生成rst文件。 到现在为止还挺好。 问题是sphinx无法导入我的任何模块 ,即使我已将我的项目添加到sys.path 。 我的单元测 ...

7 无法在java中导入子包[重复]

这个问题在这里已经有了答案: Java 包不存在错误(9 个回答) 11 个月前关闭。 有人可以帮我解决这个问 ...

2020-10-12 21:38:55 1 128   java
8 无法从父包python导入子级

我目前正在用python编写需要单元测试的Web应用程序,但是,每当我尝试导入另一个父目录中的子模块时,都会出现以下错误: 档案:my_package / core / main.py 档案:my_package / test / test.py 我的目录结构: ...

9 从sphinx子文件夹导入配置

我在项目根目录下的子文件夹(“ docs”)中创建了一个狮身人面像项目。 当我运行make文件autodoc时,它找不到配置文件并引发错误。 有办法解决吗? 项目结构 conf.py 生成文件 myreplicator.py myreplicator.rst ...

10 个人 PyPI 包:无法导入子包

我已经将我的个人实用程序功能变成了一个包,以便能够在我的所有项目中使用它。 因此,我重新构建了 repo,将其发布在GitHub 上,并将其打包为PyPI 。 但是,我无法让它工作。 我已经使用pip install jklib安装了它,但我无法导入子包。 例如,我收到错误No module na ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM