python-3.x Sphinx-多版本:下载文件不可读

koaltpgm  于 2023-06-25  发布在  Python
关注(0)|答案(1)|浏览(118)

我有一个Sphinx文档,并希望有一个多版本的Sphinx文档。
最重要的是,我有一个zip文件,我想成为文档的一部分,游客可以点击下载。
我在./docs/source/_downloads/examples/文件夹中有zip文件。在其中一个RST文件中,下载链接被注解为:

:download:`here </_downloads/examples/examples.zip>`

然而,我在通过sphinx-multiversion "docs/source" "docs/build/html" -W --keep-going -n构建文档时遇到了这个错误:

C:\Users\<username>\AppData\Local\Temp\tmpei93x8y0\6d1e6ca1fe60c272b003f0bf7e611df99dc35d1d\docs\source\examples.rst:4: WARNING: download file not readable: C:\Users\<username>\AppData\Local\Temp\tmpei93x8y0\6d1e6ca1fe60c272b003f0bf7e611df99dc35d1d\docs\source\_downloads\examples\examples.zip

我正在使用Python 3.9.4Sphinx 7.0.1sphinx-multiversion 0.2.4

xlpyo6sf

xlpyo6sf1#

显然,sphinx-multiversion通过提交哈希来归档文件,因此如果更改是在本地进行的,而不是通过git commit提交的,sphinx-multiversion构建将失败。
在sphinx-multiversion的git.py模块中:

def copy_tree(gitroot, src, dst, reference, sourcepath="."):
    with tempfile.SpooledTemporaryFile() as fp:
        cmd = (
            "git",
            "archive",
            "--format",
            "tar",
            reference.commit,
            "--",
            sourcepath,
        )
        subprocess.check_call(cmd, cwd=gitroot, stdout=fp)
        fp.seek(0)
        with tarfile.TarFile(fileobj=fp) as tarfp:
            tarfp.extractall(dst)

用于sphinx-multiversion的main.py:

git.copy_tree(str(gitroot), gitroot.as_uri(), repopath, gitref)

一旦我git addgit commit下载文件,构建工作完美,没有错误。

相关问题