如何解决使用Sphinx创建文档时如何解决DLL错误?
我正在尝试为我的包裹创建HTML文档,但是我一遍又一遍地遇到相同的错误。
我正在使用Python 3.7和Sphinx 3.2.1的Windows计算机上。
我的包裹的结构如下:
[package]
|
|__ [package]
| |
| |__ module1.py
| |__ module2.py
| |__ __init__.py
|
|__ setup.py
我在第二个[package]
文件夹中创建了一个docs文件夹,然后运行sphinx-quickstart
,结果如下:
[package]
|
|__ [package]
| |
| |__ module1.py
| |__ module2.py
| |__ __init__.py
| |
| |__ [docs]
| |
| |__ [_build]
| | ...
| |__ conf.py
|__ setup.py
我未评论并更改了conf.py
:
import os
import sys
sys.path.insert(0,os.path.abspath('..'))
然后我做了sphinx-apidoc -o . ..
,当我运行make html
时,得到以下输出:
Running Sphinx v3.2.1
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 0 source files that are out of date
updating environment: 0 added,1 changed,0 removed
C:\Users\username\.conda\envs\cera\lib\importlib\_bootstrap.py:219: RuntimeWarning: numpy.ufunc size changed,may indicate binary incompatibility. Expected 192 from C header,got 216 from PyObject
return f(*args,**kwds)
WARNING: autodoc: Failed to import module 'module1' from module 'package'; the following exception was raised:
DLL load Failed: The specified module Could not be found.
WARNING: autodoc: Failed to import module 'module2' from module 'package'; the following exception was raised:
DLL load Failed: The specified module Could not be found.
looking for Now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] modules
generating indices... genindex py-modindexdone
writing additional pages... searchdone
copying static files... ... done
copying extra files... done
dumping search index in English (code: en)... done
dumping object inventory... done
build succeeded,2 warnings.
The HTML pages are in _build\html.
已创建HTML文件,但除了模块列表以外,没有任何文档。为什么会出现DLL错误?
如果您需要任何其他信息,请告诉我!
解决方法
PYTHONPATH
/ sys.path
设置不正确可能是一个问题。这可能是由于os.path.abspath('..')
语句是相对于当前工作目录(执行脚本的目录)而言的。
要获取模块的可移植路径或相对于模块的路径,请始终使用__file__:
# package/docs/conf.py
# Use pathlib for a better path API.
# Available since Python 3.4
from pathlib import Path
import sys
THIS_DIR = Path(__file__).absolute().parent
PROJ_ROOT = THIS_DIR.parent
sys.path.insert(0,PROJ_ROOT)
,
该问题已通过将我的conda环境中的某些软件包升级到最新版本来解决。
我通过从上述错误中导入模块module1
和module2
来发现错误
conf.py
文件中并分析发生的错误消息。
似乎sphinx版本与较旧的numpy和sklearn版本不兼容,因为这些是我必须升级的软件包。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。