在Windows上删除和重新安装Python Sphinx
我正在尝试使用Python(3.8)和Sphinx(3.3.1)来构建HTML文档。但是,在Windows上删除和重新安装Python Sphinx,python,windows,pip,python-sphinx,Python,Windows,Pip,Python Sphinx,我正在尝试使用Python(3.8)和Sphinx(3.3.1)来构建HTML文档。但是,sphinx build命令给了我以下错误: C:\Users\Me\Dropbox\Kuchen>sphinx-build -b html source build Running Sphinx v3.3.1 loading pickled environment... done building [mo]: targets for 0 po files that are out of date b
sphinx build
命令给了我以下错误:
C:\Users\Me\Dropbox\Kuchen>sphinx-build -b html source build
Running Sphinx v3.3.1
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 1 source files that are out of date
updating environment: 0 added, 1 changed, 0 removed
reading sources... [100%] kaesekuchen
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] kaesekuchen
generating indices... genindex done
writing additional pages... search done
copying static files... WARNING: Failed to copy a file in html_static_file: c:\users\me\appdata\local\programs\python\python38\lib\site-packages\sphinx\themes\basic\static/jquery-3.5.1.js: PermissionError(13, 'Permission denied')
WARNING: Failed to copy a file in html_static_file: c:\users\me\appdata\local\programs\python\python38\lib\site-packages\sphinx\themes\basic\static/jquery.js: PermissionError(13, 'Permission denied')
done
copying extra files... done
dumping search index in English (code: en)... done
dumping object inventory... done
build succeeded, 2 warnings.
但是,
build
中的HTML文件kaesekuchen
未更新/更改c:\users\me\appdata\local\programs\python38\lib\site packages\sphinx
不存在Sphinx
可以解决这个问题
相反,命令pip uninstall sphinx
和后续的pip install-U sphinx
不会更改该文件夹中的任何内容,尽管有以下输出,但后者仅提供以下乐观输出:
Microsoft Windows [Version 10.0.18363.1198]
(c) 2019 Microsoft Corporation. All rights reserved.
C:\Users\me>pip uninstall sphinx
Found existing installation: Sphinx 3.3.1
Uninstalling Sphinx-3.3.1:
Would remove:
c:\users\me\appdata\local\programs\python\python38\lib\site-packages\sphinx-3.3.1.dist-info\*
c:\users\me\appdata\local\programs\python\python38\lib\site-packages\sphinx\*
c:\users\me\appdata\local\programs\python\python38\scripts\sphinx-apidoc.exe
c:\users\me\appdata\local\programs\python\python38\scripts\sphinx-autogen.exe
c:\users\me\appdata\local\programs\python\python38\scripts\sphinx-build.exe
c:\users\me\appdata\local\programs\python\python38\scripts\sphinx-quickstart.exe
Proceed (y/n)? y
Successfully uninstalled Sphinx-3.3.1
C:\Users\me>pip install -U sphinx
Collecting sphinx
Using cached Sphinx-3.3.1-py3-none-any.whl (2.9 MB)
Requirement already satisfied, skipping upgrade: docutils>=0.12 in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (0.16)
Requirement already satisfied, skipping upgrade: sphinxcontrib-serializinghtml in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (1.1.4)
Requirement already satisfied, skipping upgrade: snowballstemmer>=1.1 in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (2.0.0)
Requirement already satisfied, skipping upgrade: alabaster<0.8,>=0.7 in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (0.7.12)
Requirement already satisfied, skipping upgrade: setuptools in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (41.2.0)
Requirement already satisfied, skipping upgrade: colorama>=0.3.5; sys_platform == "win32" in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (0.4.4)
Requirement already satisfied, skipping upgrade: sphinxcontrib-jsmath in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (1.0.1)
Requirement already satisfied, skipping upgrade: babel>=1.3 in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (2.9.0)
Requirement already satisfied, skipping upgrade: imagesize in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (1.2.0)
Requirement already satisfied, skipping upgrade: sphinxcontrib-devhelp in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (1.0.2)
Requirement already satisfied, skipping upgrade: sphinxcontrib-qthelp in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (1.0.3)
Requirement already satisfied, skipping upgrade: Jinja2>=2.3 in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (2.11.2)
Requirement already satisfied, skipping upgrade: sphinxcontrib-applehelp in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (1.0.2)
Requirement already satisfied, skipping upgrade: requests>=2.5.0 in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (2.25.0)
Requirement already satisfied, skipping upgrade: packaging in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (20.4)
Requirement already satisfied, skipping upgrade: sphinxcontrib-htmlhelp in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (1.0.3)
Requirement already satisfied, skipping upgrade: Pygments>=2.0 in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from sphinx) (2.7.2)
Requirement already satisfied, skipping upgrade: pytz>=2015.7 in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from babel>=1.3->sphinx) (2020.4)
Requirement already satisfied, skipping upgrade: MarkupSafe>=0.23 in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from Jinja2>=2.3->sphinx) (1.1.1)
Requirement already satisfied, skipping upgrade: urllib3<1.27,>=1.21.1 in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from requests>=2.5.0->sphinx) (1.26.2)
Requirement already satisfied, skipping upgrade: idna<3,>=2.5 in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from requests>=2.5.0->sphinx) (2.10)
Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from requests>=2.5.0->sphinx) (2020.11.8)
Requirement already satisfied, skipping upgrade: chardet<4,>=3.0.2 in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from requests>=2.5.0->sphinx) (3.0.4)
Requirement already satisfied, skipping upgrade: six in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from packaging->sphinx) (1.15.0)
Requirement already satisfied, skipping upgrade: pyparsing>=2.0.2 in c:\users\me\appdata\local\programs\python\python38\lib\site-packages (from packaging->sphinx) (2.4.7)
Installing collected packages: sphinx
Successfully installed sphinx-3.3.1
但是,尽管有此输出,但没有创建此类文件或source
文件夹
如何才能彻底重置Sphinx安装并重新运行文档?解决这个问题需要一个有点尴尬的解释,它同时取决于:操作系统(Windows)、您的特定安装以及您如何执行Sphinx 在Windows上,您可以在不同的位置安装多个Python(取决于…):
C:\ProgramFiles\Python3x
C:\Users\me\AppData\Local\Programs\Python\Python3.x\
。我觉得这很不方便,因为它离根部很远
venv
)
venv
,无论您决定将其放置在何处。(使用venv
被认为是“事实上”的最佳实践。)话虽如此,您描述的问题有几个方面(请特别注意您正在使用的终端):
sphinx构建中的第一个警告表示sphinx正在尝试从用户帐户安装读取文件(上面第2点)。问题是,您正在执行sphinx build
的终端没有从用户帐户安装目录中读取的权限,因为终端是在不同的用户帐户下运行的,或者因为帐户安装路径没有设置读取权限……话虽如此,请重新考虑警告:
复制静态文件…警告:无法复制html\u static\u文件中的文件:c:\users\me\appdata\local\programs\python38\lib\site packages\sphinx\themes\basic\static/jquery-3.5.1.js:PermissionError(13,“权限被拒绝”)
警告:未能复制html\u static\u文件中的文件:c:\users\me\appdata\local\programs\python38\lib\site packages\sphinx\themes\basic\static/jquery.js:PermissionError(13,“权限被拒绝”)
也可能是您从帐户安装中删除了Sphinx,而文件/路径根本不存在
接下来,当您尝试使用pip
重新安装Sphinx时,还不完全清楚它是否是一个,或者pip
是否在您的PYTHONPATH
上的另一个安装中找到Sphinx……可能是Sphinx已安装,而终端根本没有读/写权限(取决于调用终端的用户帐户),或者目录可能隐藏在文件资源管理器中
我可以做些什么来彻底重置Sphinx安装并重新运行文档
您的Python基础安装(上面的第1点和第2点)只应针对系统或用户范围的更改(而不是特定的项目更改)写入
<> P>强烈建议您使用A.(如果您以前没有考虑过这样做,因为它是最简单和最干净的解决方案)。。这一点最初看起来可能令人困惑,因为目前最常引用的解决方案是venv
,使用它很简单,您的IDE应该有一个内置的UI来帮助您通过几次单击来创建它
venv
是一种扩展基本安装的Python环境,它避免了在必须进行特定于项目的更改时需要更改基本安装(如安装Sphinx,理想情况下应该在venv
上,而不是在基本安装上)
最后,当您从终端运行Sphinx时,建议在终端上运行Sphinx,否则执行的Python安装将调用终端。不要在系统Python中安装软件包。这只会带来痛苦和痛苦。始终创建一个虚拟环境,然后将软件包安装到该环境中s(1)创建一个目录来保存您的项目,(2)将cd
放入该目录,(3)将python-m venv env
创建虚拟环境,(4)将source env/bin/activate
激活虚拟环境,(5)将env/bin/pip安装Sphinx
安装Sphinx,(6)使用Sphinx快速入门。@StevePiercy只是为了补充上述评论,我个人
For a list of supported codes, see
https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-language.
> Project language [en]: en
Creating file C:\Users\me\Dropbox\Kuchentest\source\conf.py.
Creating file C:\Users\me\Dropbox\Kuchentest\source\index.rst.
Creating file C:\Users\me\Dropbox\Kuchentest\Makefile.
Creating file C:\Users\me\Dropbox\Kuchentest\make.bat.
Finished: An initial directory structure has been created.
You should now populate your master file C:\Users\me\Dropbox\Kuchentest\source\index.rst and create other documentation
source files. Use the Makefile to build the docs, like so:
make builder
where "builder" is one of the supported builders, e.g. html, latex or linkcheck.