我在同一个文件夹中有以下文件: 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被创建但不适用于配置文件。
有什么问题?
答案 0 :(得分:1)
在某些情况下,例如在MacOS中,在python3.x中,人们键入pydoc
,而对于Python3.x版本,它必须为pydoc3
。因此,最基本格式的语法是
$ pydoc3 -w <module_name> <path_to_module>
这应该在您使用终端的当前目录中创建一个.html文件。
///////////////////////////////////////////////// ////////////////////////////// \
;)
答案 1 :(得分:0)
当您从Pydoc中获取导入错误时,可以通过一些步骤找出该错误。
检查文件/软件包的Python版本和Pydoc是否在映射。某些环境同时存在Python2和Python3。基本上,别名pydoc
适用于Python 2,pydoc3.X
适用于Python 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 ...)来访问您自己的包。