前言
想用mkdocs做本地资源的管理。
去mkdocs主页上,看到的安装指导并不好使。
部分原因是:我计算机上,安装其他软件时,带了很多不同版本的py2,py3. 在环境变量中指定的都是最后安装的python.
要先调整环境变量,再安装。
如果为了不影响其他已经安装软件的正常使用,最好自己写个bat, 在bat里面,将自己手工装的符合要求的python的exe路径加到path变量中。启动自己的bat, 启动python后,这时环境才符合mkdocs要求。
值得注意:
- python3环境变量有3个
1 python3 的exe路径 \Python310
2 python3 的另外一个exe路径 \Python310\Scripts,这个第2个路径,要看原始环境变量中其他版本python的环境变量写法,漏掉这个脚本路径不行的。
3 python3的库路径 \Python310\Lib
当自己计算机上有其他软件顺带装的不同版本的py2, py3时,必须要将这3个python3的变量都调整好,才能正确安装,运行mkdocs.
看其他资料时,人家安装都很顺利。估计是他们计算机上原来没有装python, 或者其他软件带的python都是python3. 反正没看到资料上有说,安装时,谁安装失败的问题。
实验
mkdoc主页
mkdoc安装要求
https://www.mkdocs.org/user-guide/installation/
mkdocs要求用最新版的python(看文档上用的python3)和自带的pip(Python package manager)
值得注意,官方文档上用的python3版本是3.8.2,和最新版的py3.10.4的pip用法并不一样。py3.10.4用的是pip3, 而不是pip. 严重怀疑mkdocs官方文档没有及时更新。
python主页
https://www.python.org/
可以看到当前最新的py3是 3.10.4,最新的py2 是 2.7.18
下载最新的py3.10.4 Windows installer (64-bit) => python-3.10.4-amd64.exe
安装 python-3.10.4-amd64.exe
写一个脚本,来启动python3.10.4
写脚本的原因,是我计算机上有其他软件装的不同版本的py2,py3, 有好几个个版本…, 不同位置的python.exe有14个…

如果在命令行启动python, 根据环境变量的不同,一定不是我刚装的py3.
写脚本的好处,不用去修改原来计算机中的环境变量,不影响计算机中其他软件的运行。
写好的bat脚本 python_v3_10_4_env.cmd 如下:
@echo off
rem 运行环境 win10
rem ================================================================================
rem 变量定义
rem ================================================================================
SETLOCAL ENABLEDELAYEDEXPANSION
rem 定义变量 - python 路径
set VAR_PYTHON_PATH = ""
set VAR_PYTHON_LIB_PATH = ""
rem ================================================================================
rem 脚本逻辑处理
rem ================================================================================
rem 清屏
cls
call :fn_newline
call :fn_tipline
@echo 关回显
call :fn_tipline
call :fn_newline
call :fn_tipline
@echo (e.g. 使用vscode)编辑此文件时, 文件编码必须为GB2312
call :fn_tipline
call :fn_newline
call :fn_tipline
@echo 进入cmd所在目录
call :fn_tipline
cd /d %~sdp0
echo %~sdp0
call :fn_newline
call :fn_tipline
@echo 添加python3到环境变量的前面(优先搜索)
@echo 刚装了当前最新的python3(python-3.10.4-amd64.exe)
rem USERPROFILE=C:\Users\me
rem LOCALAPPDATA=C:\Users\me\AppData\Local
rem C:\Users\me\AppData\Local\Programs\Python\Python310\python.exe
call :fn_tipline
rem 赋值时,等号和变量之间不能有空格
rem python3要加的可执行路径一共2个
rem \Python310
rem \Python310\Scripts
rem add \Python310 to path
set VAR_PYTHON_PATH=%LOCALAPPDATA%\Programs\Python\Python310
set PATH=%VAR_PYTHON_PATH%;%PATH%
rem add \Python310\Scripts to path
set VAR_PYTHON_PATH=%LOCALAPPDATA%\Programs\Python\Python310\Scripts
set PATH=%VAR_PYTHON_PATH%;%PATH%
rem 显示当前的path环境变量
set %PATH%
@echo 添加python3库路径
rem C:\Users\me\AppData\Local\Programs\Python\Python310\Lib
set VAR_PYTHON_LIB_PATH=%VAR_PYTHON_PATH%\Lib
echo %VAR_PYTHON_LIB_PATH%
set PYTHONPATH=%VAR_PYTHON_LIB_PATH%
set PYTHONPATH
call :fn_newline
call :fn_tipline
@echo 显示环境变量
call :fn_tipline
rem set %path%
call :fn_newline
call :fn_tipline
@echo 查看在环境变量中搜索到的第1个python的版本
call :fn_tipline
rem echo %VAR_PYTHON_PATH%\python.exe
rem %VAR_PYTHON_PATH%\python.exe -V
python -V
rem start 环境变量传递
rem 这时再调用的程序,使用的环境变量,就是修改完的环境变量
rem start python
call cmd
goto END_BAT
rem ================================================================================
rem 函数定义区
rem ================================================================================
rem 函数 : 换行
:fn_newline
@echo on
@echo.
@echo off
rem echo. 必须在echo on 下才有效果
goto :eof
rem 函数 : 打印提示行
:fn_tipline
@echo ================================================================================
goto :eof
rem ================================================================================
rem 脚本结束点
rem ================================================================================
:END_BAT
@echo THE END
call :fn_newline
用脚本启动py3.10.4环境

可以看到py3.10.4的path环境变量(2处),库路径都设置了。
py3的版本也是刚装的最新版py3.10.4
需要注意,所有的命令都要在这个bat脚本的cmd窗口中完成,用来保证是py3.10.4干的活,而不是其他版本的py干的活。
更新pip
根据mkdocs文档,去下载 https://bootstrap.pypa.io/get-pip.py到本地,和bat放在一起

更新pip
运行 python get-pip.py
E:\tools\python>python get-pip.py
Collecting pip
Using cached pip-22.0.4-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 22.0.4
Uninstalling pip-22.0.4:
Successfully uninstalled pip-22.0.4
Successfully installed pip-22.0.4
卸载mkdocs
有可能有意外情况,哪步做错了(如果安装官方错误文档 先运行了 pip install mkdocs),导致mkdocs运行报错。这时,先卸载mkdocs,再安装mkdocs, 就可以正常使用了。
pip3 uninstall mkdocs
安装mkdocs
运行 pip3 install mkdocs
这里mkdocs官方文档写错了,他写的是 pip install mkdocs
这里的pip, pip3都是目录Python310\Scripts下的exe

看看官方错误的安装,只是看看,不要运行官方错误的命令
E:\tools\python>pip install mkdocs
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
Requirement already satisfied: mkdocs in c:\python27\lib\site-packages (1.0.4)
Requirement already satisfied: Jinja2>=2.7.1 in c:\python27\lib\site-packages (from mkdocs) (2.11.3)
Requirement already satisfied: click>=3.3 in c:\python27\lib\site-packages (from mkdocs) (7.1.2)
Requirement already satisfied: livereload>=2.5.1 in c:\python27\lib\site-packages (from mkdocs) (2.6.3)
Requirement already satisfied: tornado>=5.0 in c:\python27\lib\site-packages (from mkdocs) (5.1.1)
Requirement already satisfied: Markdown>=2.3.1 in c:\python27\lib\site-packages (from mkdocs) (3.1.1)
Requirement already satisfied: PyYAML>=3.10 in c:\python27\lib\site-packages (from mkdocs) (5.4.1)
Requirement already satisfied: MarkupSafe>=0.23 in c:\python27\lib\site-packages (from Jinja2>=2.7.1->mkdocs) (1.1.1)
Requirement already satisfied: six in c:\python27\lib\site-packages (from livereload>=2.5.1->mkdocs) (1.16.0)
Requirement already satisfied: futures in c:\python27\lib\site-packages (from tornado>=5.0->mkdocs) (3.3.0)
Requirement already satisfied: singledispatch in c:\python27\lib\site-packages (from tornado>=5.0->mkdocs) (3.7.0)
Requirement already satisfied: backports_abc>=0.4 in c:\python27\lib\site-packages (from tornado>=5.0->mkdocs) (0.5)
Requirement already satisfied: setuptools>=36 in c:\python27\lib\site-packages (from Markdown>=2.3.1->mkdocs) (41.2.0)
虽然没报错,但是安装后的目录都是py2.7的目录, 且运行mkdocs时报错。
必须要使用 pip3 install mkdocs 来安装
E:\tools\python>pip3 install mkdocs
Requirement already satisfied: mkdocs in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (1.3.0)
Requirement already satisfied: watchdog>=2.0 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from mkdocs) (2.1.7)
Requirement already satisfied: ghp-import>=1.0 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from mkdocs) (2.0.2)
Requirement already satisfied: Jinja2>=2.10.2 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from mkdocs) (3.1.1)
Requirement already satisfied: pyyaml-env-tag>=0.1 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from mkdocs) (0.1)
Requirement already satisfied: mergedeep>=1.3.4 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from mkdocs) (1.3.4)
Requirement already satisfied: Markdown>=3.2.1 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from mkdocs) (3.3.6)
Requirement already satisfied: click>=3.3 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from mkdocs) (8.1.2)
Requirement already satisfied: importlib-metadata>=4.3 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from mkdocs) (4.11.3)
Requirement already satisfied: PyYAML>=3.10 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from mkdocs) (6.0)
Requirement already satisfied: packaging>=20.5 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from mkdocs) (21.3)
Requirement already satisfied: colorama in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from click>=3.3->mkdocs) (0.4.4)
Requirement already satisfied: python-dateutil>=2.8.1 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from ghp-import>=1.0->mkdocs) (2.8.2)
Requirement already satisfied: zipp>=0.5 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from importlib-metadata>=4.3->mkdocs) (3.8.0)
Requirement already satisfied: MarkupSafe>=2.0 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from Jinja2>=2.10.2->mkdocs) (2.1.1)
Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from packaging>=20.5->mkdocs) (3.0.8)
Requirement already satisfied: six>=1.5 in c:\users\chenx\appdata\local\programs\python\python310\lib\site-packages (from python-dateutil>=2.8.1->ghp-import>=1.0->mkdocs) (1.16.0)
可以看到安装到的目录都是py3.10.4的目录。
尝试运行mkdocs
输入 mkdocs,只要出来mkdocs使用方法的提示信息,就说明mkdocs已经安装成功了。
E:\tools\python>mkdocs
Usage: mkdocs [OPTIONS] COMMAND [ARGS]...
MkDocs - Project documentation with Markdown.
Options:
-V, --version Show the version and exit.
-q, --quiet Silence warnings
-v, --verbose Enable verbose output
-h, --help Show this message and exit.
Commands:
build Build the MkDocs documentation
gh-deploy Deploy your documentation to GitHub Pages
new Create a new MkDocs project
serve Run the builtin development server
E:\tools\python>
mkdocs的使用
mkdocs的使用,资料很多。而且每个版本的使用兼容性都挺好的。去查资料一大把。
本文档详细介绍了如何在存在多个Python版本的环境中,正确配置Python环境以安装和使用mkdocs。作者通过创建批处理脚本来指定Python3.10.4的路径,确保环境变量正确,并更新pip到最新版本。之后,卸载并重新安装mkdocs,避免了因版本冲突导致的问题。最终,成功运行mkdocs并展示了其使用方法。
352

被折叠的 条评论
为什么被折叠?



