使用pydoc时导入错误

时间:2017-01-17 08:51:05

标签: python pydoc

我在同一个文件夹中有以下文件: config.py, init .py,asc.py和mainfile.py

init .py文件的内容:

from mainfile import *

config和asc文件导入mainfile.py。

我使用pydoc创建html:   python -m pydoc -w mainfile.py

我收到的错误是:     <type 'exceptions.ImportError'>: No module named config

如果我将删除配置,它工作正常,html被创建但不适用于配置文件。

有什么问题?

4 个答案:

答案 0 :(得分:1)

在Python3中

在某些情况下,例如在MacOS中,在python3.x中,人们键入pydoc,而对于Python3.x版本,它必须为pydoc3。因此,最基本格式的语法是

基本语法

$ pydoc3 -w <module_name> <path_to_module>

这应该在您使用终端的当前目录中创建一个.html文件。

///////////////////////////////////////////////// ////////////////////////////// \

;)

答案 1 :(得分:0)

当您从Pydoc中获取导入错误时,可以通过一些步骤找出该错误。

步骤

  1. 检查文件/软件包的Python版本和Pydoc是否在映射。某些环境同时存在Python2和Python3。基本上,别名pydoc适用于Python 2,pydoc3.X适用于Python 3。

  2. 检查导入文件是否存在。有时候,您只是导入不存在的文件/模块。

  3. 检查文件/模块是否可以通过python导入。如果要在Python 2中记录自定义模块,请检查__init__.py是否存在于主要源代码的每个目录中。

答案 2 :(得分:0)

pydoc和pdoc读取您的代码!!!

如果要从同一目录pdoc --html .pydoc -w .运行它 如果所有模块都在同一目录中,它应该可以工作。但是如果不是这样的话:

确保每个目录中的主模块都具有sys完整路径(附加到同一目录)。

sys.path.append("D:/Coding/project/....)

相对路径不会解决问题!

答案 3 :(得分:-1)

简答

您需要使用mainfile.py中的绝对导入来导入配置。使用:

from yournamefolder import config

或使用:

from . import config

Python 3仅支持绝对导入;语句import config仅导入顶级模块config

长答案

有关更完整的解决方案,请参阅此内容(如果您使用的是Python2):

您将需要阅读有关解决此问题的Absolute和Relative Imports的信息。使用:

from __future__ import absolute_import

使用它,任何未加修饰的包名称将始终引用顶级包。然后,您需要使用相对导入(来自.email import ...)来访问您自己的包。