Windows에서 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
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.
하나,
- HTML 파일
kaesekuchen
에서build
업데이트되지는 / 변경되었습니다. - 폴더
c:\users\me\appdata\local\programs\python\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
그러나 폴더 c:\users\me\appdata\local\programs\python\python38\lib\site-packages\sphinx\
는 아직 없습니다.
다음을 사용하여 새 Sphinx 프로젝트를 처음부터 실행하려고했습니다 sphinx-quickstart
.
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.
그러나이 출력에도 불구하고 source
생성되는 파일이나 폴더 가 없습니다 .
Sphinx 설치를 완전히 재설정하고 문서를 다시 실행하려면 어떻게해야합니까?
답변
이 문제를 해결하려면 운영 체제 (Windows), 특정 설치 및 Sphinx 실행 방법에 동시에 의존하는 다소 어색한 설명이 필요합니다.
Windows에서는 여러 위치에 여러 Python 설치를 할 수 있습니다 (에 따라 다름).
일반적인 위치 중 하나는
C:\Program Files\Python3x
입니다.사전 구성된 기본 경로 입니다
C:\Users\me\AppData\Local\Programs\Python\Python3.x\
. 뿌리에서 먼 곳에 있기 때문에 불편합니다.
현재 널리 사용되는 Python 설치 확장 방법은 가상 환경 ( venv
)을 사용하는 것 입니다.
- 당신의
venv
, 당신이 그것을 배치하기로 결정 곳. (a를 사용하는venv
것은 "사실상" 모범 사례 로 간주됩니다 .)
한 시점에서 WindowsPYTHONPATH 에서 환경 변수 로 설정 하면 Windows가 Python 설치를 찾을 경로에 있습니다. 모듈 검색 경로에 대한 규칙을 확인하십시오 . 이제 문제는 경로에 둘 이상의 Python 설치가 설정되어있는 경우 Windows가 다른 설치에서 라이브러리도 찾습니다.
(Windows의 Python 설치에 대한 일반적인 참고 사항이 필요합니다. 2019 년에 Microsoft 는이 답변에서 저명한 SO 사용자 가 언급 하고 문서에서 언급 한대로 Windows에 Python을 포함했습니다 . 그 무렵 환경 변수가 필요한 Windows 버그가있었습니다. 관리자 계정으로 설정하려면-참조를 찾을 수 없지만 어딘가에 언급되어 있습니다. Python을 별도로 설치하고 환경 변수를 관리자로 설정하는 것이 좋습니다.)
하지만 설명하는 문제에는 몇 가지 측면이 있습니다 ( 사용 중인 터미널에 특히주의 ).
의 첫 번째 경고 sphinx-build
는 Sphinx가 사용자 계정 설치에서 파일을 읽으려고한다는 것을 나타냅니다 (위의 2 번 지점). 문제는 터미널 이 실행중인 sphinx-build
터미널이 다른 사용자 계정으로 또는 설치 경로가 읽기 권한 설정되지 않은 계정 때문에 실행되고이 갖는 ... 때문에, 사용자 계정 설치 디렉토리에서 읽을 수있는 권한이 없습니다 경고를 다시 고려하십시오.
정적 파일 복사 중 ... 경고 : 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')
경고 : html_static_file에서 파일 복사 실패 : c : \ users \ me \ appdata \ local \ programs \ python \ python38 \ lib \ site-packages \ sphinx \ themes \ basic \ static / jquery.js : PermissionError (13, ' 권한이 거부되었습니다. ')
계정 설치에서 Sphinx를 삭제했는데 파일 / 경로가 단순히 거기에없는 경우 일 수도 있습니다.
다음을 사용하여 Sphinx를 다시 설치하려고 할 때 오래된 캐시 문제 인지 또는 다른 설치에서 Sphinx를 찾는 지 여부 가 pip
완전히 명확하지 않습니다. Sphinx가 설치되어 있고 터미널이 단순히 읽지 않은 경우 일 수 있습니다. / 쓰기 권한 (터미널을 호출 한 사용자 계정에 따라 다름) 또는 디렉토리가 파일 탐색기에서 숨겨 질 수 있습니다 ...pip
PYTHONPATH
Sphinx 설치를 완전히 재설정하고 문서를 다시 실행하려면 어떻게해야합니까?
Python 기본 설치 (위의 1 및 2 지점)는 시스템 또는 사용자 전체의 변경을 위해서만 작성되어야합니다 (특정 프로젝트 변경이 아님).
를 사용하는 것이 좋습니다 venv. (이전에 해보지 않았다면 가장 쉽고 깨끗한 솔루션이기 때문에 고려할 적절한시기입니다.) 역사적으로 Python에 대한 여러 가상 환경이 있었기 때문에 처음에는 혼란스러워 보일 수 있습니다 . 현재 venv
가장 일반적으로 인용되는 솔루션이며 사용 방법이 간단합니다. IDE에는 몇 번의 클릭만으로 만들 수있는 내장 UI가 있어야합니다.
A venv
는 기본 설치를 확장하는 Python 환경으로, 프로젝트 별 변경을 수행해야 할 때 기본 설치를 변경할 필요가 없습니다 (예 : Sphinx를 설치하는 venv
것이 기본 설치 가 아닌 곳에 있어야 함 ).
마지막으로 터미널 에서 Sphinx를 실행할 때 터미널 에서 활성화하는venv 것이 좋습니다 . 그렇지 않으면 실행되는 Python 설치가 터미널 을 호출 한 사용자 계정에 따라 달라질 수 있습니다 .